Visualizzazione dei risultati da 1 a 4 su 4

Discussione: [JAVA] Jasper Report

  1. #1

    [JAVA] Jasper Report

    Salve a tutti,
    sto realizzando una Web Application con JSP e sono alle prese con l'esigenza di generare un documento PDF che contenga dei dati estratti dinamicamente da un DB.

    Ebbene, vista la mia scarsa attitudine allo "smanettamento" (dettata dalla mia ancor modesta esperienza), sono ricorsa all'utilizzo di un tool di design (iReport per l'esattezza, che si appoggia su JasperReport) per la creazione di un documento compilato .jasper pronto ad essere convertito in PDF (ma anche in molti altri formati).
    Tale operazione è immediata all'interno di iReport, ma ciò di cui avrei bisogno io, è di avviare tale processo da una pagina JSP.
    Se per caso qualcuno di voi avesse avuto esperienza con JasperReport, saprebbe fornirmi una porzione di codice per trasformare il mio .jasper in qualcosa di godibile?

    Grazie anticipatamente per l'impegno,
    AleX

  2. #2
    Ho risolto il mio problema, a vantaggio di chi dovesse incorrere nello stesso problema propongo questo codice:

    codice:
    /*
    * Main.java
    *
    */
    
    import net.sf.jasperreports.engine.*;
    import net.sf.jasperreports.engine.export.*;
    import net.sf.jasperreports.engine.util.*;
    import net.sf.jasperreports.view.*;
    import java.sql.*;
    
    import java.io.*;
    import java.util.*;
    
    /**
    *
    */
    public class Main {
    
    /** Creates a new instance of Main */
    void Main() {
    }
    
    /**
    * @param args the command line arguments
    */
    public static void main(String[] args) {
    try{
    
    //File jasper sorgente
    String fileName="C:\\report1.jasper";
    //File pdf di destinazione
    String destFileNamePdf="C:\\report1.pdf";
    //File xls di destinazione
    String destFileNameXls="C:\\report1.xls";
    
    //Passaggio parametri da passare al jasper.
    Map parameters = new HashMap();
    parameters.put("param1", new Integer(1));
    
    //Preparazione del file da stampare (in questa fase si esegue la query e si inseriscono
    //i valori estratti dalla query)
    JasperPrint jasperPrint=JasperFillManager.fillReport(fileName, parameters, getConnection());
    
    //Creazione del PDF
    JasperExportManager.exportReportToPdfFile(jasperPrint, destFileNamePdf);
    
    //Creazione dell'xls
    JRXlsExporter exporter = new JRXlsExporter();
    exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
    exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, destFileNameXls);
    exporter.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET, Boolean.TRUE);
    exporter.exportReport();
    
    System.exit(0);
    }catch (Exception e){
    e.printStackTrace();
    }
    
    }
    
    /**Metodo per creare la connessione al DB*/ 
    private static Connection getConnection() throws ClassNotFoundException, SQLException {
    //Change these settings according to your local configuration
    String driver = "sun.jdbc.odbc.JdbcOdbcDriver";
    String connectString = "jdbc:odbc:nomedb";
    String user = "admin";
    String password = "password";
    
    Class.forName(driver);
    Connection conn = DriverManager.getConnection(connectString, user, password);
    return conn;
    }
    
    }
    Alla prossima,
    AleX

  3. #3
    ciao spero ci sia ancora qlc1 interessato a questo post...

    io ho seguito quest'esempio
    ho lo stesso problema... voglio creare un pdf da un modello scritto con ireport da java

    inserendo i dati dal mio programma.

    ma mi da quest'errore:
    Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
    at net.sf.jasperreports.engine.fill.JRBaseFiller.<cli nit>(JRBaseFiller.java:88)
    at net.sf.jasperreports.engine.fill.JRFiller.createFi ller(JRFiller.java:147)
    at net.sf.jasperreports.engine.fill.JRFiller.fillRepo rt(JRFiller.java:57)
    at net.sf.jasperreports.engine.JasperFillManager.fill Report(JasperFillManager.java:402)
    at net.sf.jasperreports.engine.JasperFillManager.fill Report(JasperFillManager.java:363)
    at pdf.Application.main(Application.java:31)

    public static void main(String[] args) throws Exception
    {

    String input = "C:\\a\\classic.jasper";
    File in= new File(input);
    FileInputStream stream = new FileInputStream(in);
    String output = "C:\\a\\classic.pdf";
    HashMap map = new HashMap();
    map.put("comune", "latina");



    JasperPrint print = JasperFillManager.fillReport(stream, map, Connessione.getConnessione());
    System.out.println("prova");
    JRExporter exp = new net.sf.jasperreports.engine.export.JRPdfExporter() ;
    exp.setParameter(JRExporterParameter.OUTPUT_FILE_N AME, output);
    exp.setParameter(JRExporterParameter.JASPER_PRINT, print);
    exp.exportReport();

    }

    questo è il codice... e la linea incriminata è:
    JasperPrint print = JasperFillManager.fillReport(stream, map, Connessione.getConnessione());

    se metto nel classpath quel package il problema cambia e mi LogFactoryException: nullPointerException...


    spero ke qlc1 possa farmi kiarezza

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304

    Moderazione

    Il thread è del 2005.
    Non tirare su discussioni vecchie che sono sepolte.

    Per Java, inoltre, esiste un apposito sub-forum (che all'epoca non c'era). Apri una nuova discussione nell'area corretta.

    Qui chiudo.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

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 © 2024 vBulletin Solutions, Inc. All rights reserved.