0

文字列を JSONObject に変換できないという問題があります。この問題を解決できる人はいますか? 助けてくれてありがとう。

<?php
    mysql_connect("localhost","test","");
    mysql_select_db("test");
    $response = array();
    $fullname=$_POST["fullname"];
    $result = mysql_query("select fullname,contact, DATE_FORMAT(reserveDate,'%e-%c-%Y') reserveDate, 
            DATE_FORMAT(reserveTime,'%h:%i %p') reserveTime,
            pax,tableNumber
            from reserve inner join customer using (customerID)
            where fullname=$fullname" );    
    if (mysql_num_rows($result) > 0) {  
        $response["reserve"] = array();
        while ($row = mysql_fetch_array($result)) {

            // temp user array

            $reserv = array();

            $reserv["fullname"] = $row["fullname"];
            $reserv["contact"] = $row["contact"];
            $reserv["reserveDate"] = $row["reserveDate"];
            $reserv["reserveTime"] = $row["reserveTime"];
            $reserv["pax"] = $row["pax"];
            $reserv["tableNumber"] = $row["tableNumber"];
            // push single product into final response array

            array_push($response["reserv"], $reserv);

        }

        // success
        $response["success"] = 1;
        // echoing JSON response
        echo json_encode($response);
    } else {
        $response["success"] = 0;
        $response["message"] = "No user found";
        // echo no users JSON
        echo json_encode($response);
    }
    ?>

JSONPARSER クラス

package com.example.easy;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.util.List;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.utils.URLEncodedUtils;
import org.apache.http.impl.client.DefaultHttpClient;
import org.json.JSONException;
import org.json.JSONObject;

import android.util.Log;

public class JSONParser {

static InputStream is = null;
static JSONObject jObj = null;
static String json = "";

// constructor
public JSONParser() {

}

// function get json from url
// by making HTTP POST or GET method
public JSONObject makeHttpRequest(String url, String method,
        List<NameValuePair> params) {

    // Making HTTP request
    try {

        // check for request method
        if(method == "POST"){
            // request method is POST
            // defaultHttpClient
            DefaultHttpClient httpClient = new DefaultHttpClient();
            HttpPost httpPost = new HttpPost(url);
            httpPost.setEntity(new UrlEncodedFormEntity(params));

            HttpResponse httpResponse = httpClient.execute(httpPost);
            HttpEntity httpEntity = httpResponse.getEntity();
            is = httpEntity.getContent();

        }else if(method == "GET"){
            // request method is GET
            DefaultHttpClient httpClient = new DefaultHttpClient();
            String paramString = URLEncodedUtils.format(params, "utf-8");
            url += "?" + paramString;
            HttpGet httpGet = new HttpGet(url);

            HttpResponse httpResponse = httpClient.execute(httpGet);
            HttpEntity httpEntity = httpResponse.getEntity();
            is = httpEntity.getContent();
        }           


    } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    } catch (ClientProtocolException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

    try {
        BufferedReader reader = new BufferedReader(new InputStreamReader(
                is, "iso-8859-1"), 8);
        StringBuilder sb = new StringBuilder();
        String line = null;
        while ((line = reader.readLine()) != null) {
            sb.append(line + "\n");
        }

        //json = sb.toString();
        json = sb.toString().substring(0, sb.toString().length()-1);
        System.out.println("jsonstring ="+json);
        is.close();
    } catch (Exception e) {
        Log.e("Buffer Error", "Error converting result " + e.toString());
    }

    // try parse the string to a JSON object
    try {
        jObj = new JSONObject(json);
    } catch (JSONException e) {
        Log.e("JSON Parser", "Error parsing data " + e.toString());
    }

    // return JSON String
    return jObj;

}

}

ReserveInfoクラスでエラーが発生しています。このエラーを取得」値 .

package com.example.easy;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedHashSet;
import java.util.List;

import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.Button;
import android.widget.ScrollView;
import android.widget.TextView;
import android.widget.Toast;

public class Custname extends Activity implements OnClickListener {
    TextView custinfo2,lblempty2;


        Button btnsearch1;
        TextView custinfo,lblempty;
        ScrollView svcustdetails, svreserve;

        AutoCompleteTextView txtcustname ;
        String Contacts[];
        int arraysize;  
        private ProgressDialog pDialog;

        JSONParser jParser = new JSONParser();
        JSONParser jParser2 = new JSONParser();
        private static final String TAG_SUCCESS = "success";
        private static final String TAG_RESERV = "reserv";
        private static final String TAG_FULLNAME = "fullname";
        private static final String TAG_CONTACT = "contact";
        private static final String TAG_DATE = "reserveDate";
        private static final String TAG_TIME = "reserveTime";
        private static final String TAG_PAX = "pax";
        private static final String TAG_TABLE = "tableNumber";
        JSONArray reserv = null;
        JSONArray reserv2 = null;
        JSONObject json2;
        String contactno;

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.custname);

        btnsearch1= (Button) findViewById(R.id.btnsearch);

        svcustdetails=(ScrollView)findViewById(R.id.svcustdetails);
        svreserve=(ScrollView)findViewById(R.id.svreserve);
        custinfo2=(TextView)findViewById(R.id.custinfo2);

        txtcustname = (AutoCompleteTextView)findViewById(R.id.txtcustname);     

         txtcustname = (AutoCompleteTextView)findViewById(R.id.txtcustname);

            btnsearch1= (Button) findViewById(R.id.btnsearch1);
            lblempty2= (TextView)findViewById(R.id.lblempty2);

        new LoadContact().execute();

        btnsearch1.setOnClickListener(new OnClickListener() {
            public void onClick(final View v) {
                if(txtcustname.getText().toString().equalsIgnoreCase("")){
                    Toast.makeText(Custname.this,"Please enter customer name", Toast.LENGTH_SHORT).show();
                }else{
                    reset();
                    new ReserveInfo().execute();
                }   
            }
        });
    }

    class LoadContact extends AsyncTask<String, String, String> {
        @Override
        protected void onPreExecute() {
            super.onPreExecute();
        }

        protected String doInBackground(String... args) {
            List<NameValuePair> params = new ArrayList<NameValuePair>();    
            JSONObject json = jParser.makeHttpRequest("http://10.0.2.2/Laicamproject/checkName.php", "GET", params);            
            // Check log cat for JSON reponse
            Log.d("All Name: ", json.toString());
            Contacts=new String[arraysize];

            try {
                int success = json.getInt(TAG_SUCCESS);
                if (success == 1) {
                    reserv = json.getJSONArray(TAG_RESERV);
                    arraysize=reserv.length();
                    Contacts=new String[arraysize];
                    for(int a=0;a<arraysize;a++){
                         JSONObject c = reserv.getJSONObject(a);
                        Contacts[a]=c.getString(TAG_FULLNAME);
                    }   
                } else {
                    System.out.println("no user found");
                }
            } catch (JSONException e) {
                System.out.println("e3"+e.toString());
            }

            return null;
        }


        protected void onPostExecute(String file_url) {
            //ArrayList with duplicates String
            List<String> dupList = (List<String>) Arrays.asList(Contacts);

            //Converting ArrayList to HashSet to remove duplicates
            LinkedHashSet<String> listToSet = new LinkedHashSet<String>(dupList);

            //Creating Arraylist without duplicate values
            List<String> contlist = new ArrayList<String>(listToSet);

            System.out.println("Customer list: " + contlist );

            ArrayAdapter<String> adapter = new ArrayAdapter<String>(Custname.this,android.R.layout.simple_dropdown_item_1line,contlist  );
            // Set the adapter 
            txtcustname.setAdapter(adapter);
            txtcustname.setThreshold(1);    
        }

    }

    class ReserveInfo extends AsyncTask<String, String, String> {

        @Override
        protected void onPreExecute() {
            super.onPreExecute();       
            pDialog = new ProgressDialog(Custname.this);
            pDialog.setMessage("Loading reservation");
            pDialog.setIndeterminate(false);
            pDialog.setCancelable(false);
            pDialog.show();
        }

        protected String doInBackground(String... args) {
            String n=txtcustname.getText().toString();
            List<NameValuePair> params = new ArrayList<NameValuePair>();
            params.add(new BasicNameValuePair(TAG_FULLNAME,n ));
            json2 = jParser2.makeHttpRequest("http://10.0.2.2/Laicamproject/cName.php","POST", params);
            System.out.println("params"+params);
            try {
                reserv2 = json2.getJSONArray(TAG_RESERV);
                System.out.println("Reservation"+reserv2.toString());
                int i=0;
            } catch (JSONException e) {
                // TODO Auto-generated catch block
                System.out.println("e1=="+e.toString());
            }
            return null;
        }

        protected void onPostExecute(String file_url) {
            pDialog.dismiss();
            int num=1;
            JSONObject c2;
            try {
                int success = json2.getInt(TAG_SUCCESS);
                if (success == 1) {
                    for(int i=0;i<reserv2.length();i++){
                        c2 = reserv2.getJSONObject(i);
                        //System.out.println("c2.getString(TAG_CONTACT).==="+c2.getString(TAG_CONTACT));
                        //System.out.println("c2.getString(TAG_FULLNAME).==="+c2.getString(TAG_FULLNAME));  
                        custinfo2.setText("Name \t: "+ c2.getString(TAG_FULLNAME)
                                +"\nPhone \t: " + c2.getString(TAG_CONTACT));   

                        lblempty2.append("\n["+num+"] "+"Date \t\t: "+ c2.getString(TAG_DATE)
                                    +"\n\t Time \t\t: " + c2.getString(TAG_TIME)
                                    +"\n\t Pax \t\t\t: "+ c2.getString(TAG_PAX)
                                    +"\n\t Table \t\t: "+ c2.getString(TAG_TABLE)+"\n");
                    }
                }else{
                    showAlert();
                }

            } catch (JSONException e) {
                // TODO Auto-generated catch block
                System.out.println("e2=="+e.toString());
        }
    }

        public void onClick(View v) {
            // TODO Auto-generated method stub

        }
    }

        @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub  
    }

    public void showAlert(){
        Custname.this.runOnUiThread(new Runnable() {
            public void run() {
                AlertDialog.Builder builder = new AlertDialog.Builder(Custname.this);
                builder.setTitle("No contact number found")
                       .setCancelable(false)
                       .setPositiveButton("OK", new DialogInterface.OnClickListener() {
                           public void onClick(DialogInterface dialog, int id) {
                               txtcustname.setText("");
                               reset();
                           }
                       });                     
                AlertDialog alert = builder.create();
                alert.show();               
            }
        });
    }

    public void reset(){
        lblempty2.setText("");
        custinfo2.setText("");
    }
}

サブレポートのヘッダーが表示される必要があるのは、サブレポートがクリスタルレポートで撮影されている場合です

次のようなクリスタルレポートがあります。 ここに画像の説明を入力

この Crystal レポートには、2 つのサブレポートがあります

1.Delparkingtype.rpt 2.DeliveryDetailedrpt

DelivaryDetailedrptレポートを表示する場所にDelivaryDetailedrptヘッダーを表示したい
横方向のページにプロパティの繰り返しを設定しようとしました..しかし、それはどこにも影響しません..
だから、
サブレポートヘッダーを表示してどこにでも表示する方法を誰かが知っている場合はどうすればよいですかサブレポートが表示されています..助けてください

4

1 に答える 1

1

私はあなたのphpを調べましたが、私には、ルートは ではJSONArrayなくJSONObject. aではなくa を返すmakeHttpRequest必要がありますJSONArrayJSONObject

また、Java での文字列比較はequals、 ==Stringの参照をチェックするメソッドを通じて実行されます。

例えば

if(method == "POST")

そしてif-else支店も

于 2013-11-06T07:33:01.270 に答える