PDA

Visualizza la versione completa : [JAVA] Jasper Report


AleXXandra
18-02-2005, 13:42
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

AleXXandra
24-02-2005, 13:18
Ho risolto il mio problema, a vantaggio di chi dovesse incorrere nello stesso problema propongo questo 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(jasperPr int, destFileNamePdf);

//Creazione dell'xls
JRXlsExporter exporter = new JRXlsExporter();
exporter.setParameter(JRExporterParameter.JASPER_P RINT, jasperPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_F ILE_NAME, destFileNameXls);
exporter.setParameter(JRXlsExporterParameter.IS_ON E_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

sagitter1234
30-08-2007, 13:14
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.<clinit>(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

LeleFT
30-08-2007, 13:24
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. :ciauz:

Loading