Autore Topic: Errore cursore mentre crea PDF  (Letto 375 volte)

Offline JCC

  • Utente junior
  • **
  • Post: 99
  • Respect: +1
    • Mostra profilo
Errore cursore mentre crea PDF
« il: 29 Luglio 2014, 21:29:42 CEST »
0
Faccio prove da ore, se la query restituisce più di 2 record, crea il pdf vuoto e il logcat scrive questo:
Codice (Java): [Seleziona]
07-29 20:58:26.236: W/IInputConnectionWrapper(28641): finishComposingText on inactive InputConnection
07-29 20:58:26.306: W/IInputConnectionWrapper(28641): getTextBeforeCursor on inactive InputConnection
07-29 20:58:26.306: W/IInputConnectionWrapper(28641): getCursorCapsMode on inactive InputConnection
07-29 20:58:26.306: W/IInputConnectionWrapper(28641): finishComposingText on inactive InputConnection
07-29 20:58:26.306: W/IInputConnectionWrapper(28641): finishComposingText on inactive InputConnection
07-29 20:58:26.316: W/IInputConnectionWrapper(28641): getCursorCapsMode on inactive InputConnection
07-29 20:58:26.326: W/IInputConnectionWrapper(28641): showStatusIcon on inactive InputConnection
07-29 20:58:26.336: W/IInputConnectionWrapper(28641): finishComposingText on inactive InputConnection

Codice (Java): [Seleziona]
private void prova_pdf(){
    Button n_fattura_ = (Button)findViewById(R.id.btn_n);  
    String n_fatturaok = n_fattura_.getText().toString();
    SQLiteDatabase db = new DatabaseHelper(this).getReadableDatabase();
    String sql = "SELECT F._id, F.id_prodotto, F.numero, F.data, F.cliente, F.prodotto, F.unita_di_misura, F.quantità, F.prezzo_unitario, F.importo_totale, F.iva," +
            "C.ragione_sociale, C.indirizzo, C.cap, C.citta, C.provincia, C.paese, C.codice_fiscale, C.p_iva, telefono FROM fatture F LEFT JOIN clienti C ON (F.cliente  =  C.ragione_sociale) WHERE F.numero = '"+n_fatturaok+"'";

    Cursor c1 = db.rawQuery(sql, null);
    int count = c1.getCount();

    String[] id_ = new String[count];
    String[] idp_ = new String[count];      
    String data_ = null;
    String cliente_ = null;
    String[] prodotto_ = new String[count];
    String[] unita_di_misura_ = new String[count];
    String[] quantità_ = new String[count];
    String[] prezzo_unitario_ = new String[count];
    String[] importo_totale_ = new String[count];
    String [] iva_ = new String[count];


    for(int i=0; i<count; i++) {
      c1.moveToNext();
            id_[i] = c1.getString(0);
            idp_[i] = c1.getString(1);
            numero_ = c1.getString(2);
            data_ = c1.getString(3);
            cliente_= c1.getString(4);
            prodotto_[i] = c1.getString(5);
            unita_di_misura_[i] = c1.getString(6);
            quantità_[i] = c1.getString(7);
            prezzo_unitario_[i] = c1.getString(8);
            importo_totale_[i] = c1.getString(9);
            iva_[i]= c1.getString(10);          




                filename = "ee_"+numero_+".pdf";

                //ANNO PER LE CARTELLE
                anno = (data_);//ricavo l'anno per la cartella
                anno = anno.substring(0,4);//prendo le prime 4 lettere per creare la cartella
                //  
                Document document = new Document(PageSize.A4, 5, 5, 50, 50);// create the document
                 File root = new File(Environment.getExternalStorageDirectory(), getString(R.string.app_name)+"/"+"Fatture_"+anno);
                 if (!root.exists()) {
                     root.mkdirs();   // create root directory in sdcard
                 }
                 File gpxfile = new File(root,filename);  // generate pdf file in that directory


                 try {
                 PdfWriter.getInstance(document,new FileOutputStream(gpxfile));
                 document.open();  // open the directory


                 // now for ad table in pdf use below code
                 PdfPTable table = new PdfPTable(7); // numero celle
                 table.getDefaultCell().setHorizontalAlignment(Element.ALIGN_CENTER);
                 table.getDefaultCell().setVerticalAlignment(Element.ALIGN_MIDDLE);  

                 float[] larghezza_colonne_seconda_t= new float[] {15f, 70f, 15f, 20f, 20f, 25f, 10f};
                 table.setWidths(larghezza_colonne_seconda_t);
                 table.addCell(new Phrase("Cod. Art.", FontFactory.getFont(FontFactory.HELVETICA_BOLD, 8)));
                 table.addCell(new Phrase("Descrizione", FontFactory.getFont(FontFactory.HELVETICA_BOLD, 8)));
                 table.addCell(new Phrase("U.M.", FontFactory.getFont(FontFactory.HELVETICA_BOLD, 8)));
                 table.addCell(new Phrase("Quantità", FontFactory.getFont(FontFactory.HELVETICA_BOLD, 8)));
                 table.addCell(new Phrase("Importo Unitario", FontFactory.getFont(FontFactory.HELVETICA_BOLD, 8)));
                 table.addCell(new Phrase("Importo Totale", FontFactory.getFont(FontFactory.HELVETICA_BOLD, 8)));
                 table.addCell(new Phrase("Iva %", FontFactory.getFont(FontFactory.HELVETICA_BOLD, 8)));      
                 for(int m=0 ;m < prodotto_.length;m++){              
                    table.addCell(new Phrase(idp_[m], FontFactory.getFont(FontFactory.HELVETICA, 8)));
                    table.addCell(new Phrase(prodotto_[m], FontFactory.getFont(FontFactory.HELVETICA, 8)));
                    table.addCell(new Phrase(unita_di_misura_[m], FontFactory.getFont(FontFactory.HELVETICA, 8)));
                    table.addCell(new Phrase(quantità_[m], FontFactory.getFont(FontFactory.HELVETICA, 8)));
                    table.addCell(new Phrase(prezzo_unitario_[m], FontFactory.getFont(FontFactory.HELVETICA, 8)));
                    table.addCell(new Phrase(importo_totale_[m], FontFactory.getFont(FontFactory.HELVETICA, 8)));
                    table.addCell(new Phrase(iva_[m], FontFactory.getFont(FontFactory.HELVETICA, 8)));      
                    }
                c1.close();
                db.close();
                document.add(table);
                document.addCreationDate();
                document.close();
                                     }
                                     catch(Exception e){
                                     }
                                   
               
                }  
« Ultima modifica: 29 Luglio 2014, 21:59:34 CEST da JCC »

Offline Nicola_D

  • Moderatore
  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:Errore cursore mentre crea PDF
« Risposta #1 il: 29 Luglio 2014, 21:56:35 CEST »
0
fatti un log dell'exception, secondo me quel ciclo va in out of bounds....
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia