Visualizzazione dei risultati da 1 a 5 su 5

Discussione: [Java] Jasper

  1. #1

    [Java] Jasper

    Salve,

    per creare i report utilizzo il seguente codice java:
    codice:
    public static void runReport(String databaseName, String userName, String password,String reportFile,String empID) {
    
            
            try{
                String report = reportFile;
    
                HashMap reportParam = new HashMap();
                reportParam.put("EMPID", empID);
    
    
                Connection jdbcConnection = connectDB(databaseName, userName, password);
                JasperPrint jasperPrint2 = JasperFillManager.fillReport(report, reportParam, jdbcConnection);
                
    
                int lar = (int) Toolkit.getDefaultToolkit().getScreenSize().getWidth();
                int alt = (int) Toolkit.getDefaultToolkit().getScreenSize().getHeight();
                JRViewer jrv = new JRViewer(jasperPrint2);
                jrv.setPreferredSize(new Dimension(lar - 50, alt - 50));
                JScrollPane reportScroll = new JScrollPane(jrv);
                JPanel viewer = new JPanel();
                viewer.add(reportScroll);
                JFrame finestra = new JFrame();
                finestra.add(viewer);
                finestra.pack();
                finestra.setVisible(true);
                finestra.repaint();   
                
    
            }catch(Exception ex) {
                String connectMsg = "Could not create the report " + ex.getMessage() + "\n " + ex.toString()+"\n"+ex.getCause()+"\n"+ex.fillInStackTrace();
                System.out.println(connectMsg);
            }
            
        }
        
     
    
        public static void main(String[] args) {      
           
                String databaseName = "xxx" ;
                String userName = "xxx";
                String password = "xxx";
                String reportFile = "classic.jasper";
                String str="";
    /*
    inserisco gli id da stampare dato che su classic.jasper l'interrogazione sql è del tipo : 
    select * from tabella where id in (str)
    */
                runReport(databaseName, userName, password, reportFile,str);
            
            return;
            
        }
    i problemi sono due :
    1) tempi lunghi , per caricare 24k record impiega ben 1 minuto e 6 secondi
    2)java heap space, non carica 30k record in quanto esaurisce la memoria


    come posso risolvere questi due problemi? c'è un modo + veloce per eseguire il caricamento e la visualizzazione dei dati?
    E' tutta colpa di Berlusconi !
    Help [Ciclico] Fisco, domande varie

    Avatar

  2. #2
    up
    E' tutta colpa di Berlusconi !
    Help [Ciclico] Fisco, domande varie

    Avatar

  3. #3
    E' tutta colpa di Berlusconi !
    Help [Ciclico] Fisco, domande varie

    Avatar

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    33
    ciao JunkyFunky!
    Hai trovato il problema?
    In teoria bisognerebbe aumentare la memoria... heap... ma io non riesco proprio a farlo...

  5. #5
    Utente di HTML.it L'avatar di bako
    Registrato dal
    Feb 2004
    Messaggi
    1,797
    prova a istanziare gli oggetti prima e non ogni volta.

    per aumentare la memoria devi dare dei parametri alla jvm
    -Xms[NUMERO]m: (minima)
    -Xmx[NUMERO]m: (massima)

    es: java -jar programma.jar -Xms64m -Xmx256m (mi sembra si faccia così)
    mininima ne avrà 64 massima 256

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.