Entradas etiquetadas ‘JasperReports’
Integración de JasperReports en ADF.
En este post explicaremos como poder lanzar los reports que hayamos diseñado con Ireport en nuestras aplicaciones de ADF.
public void launchReport(String reportName,Map params) {
ExternalContext econtext = FacesContext.getCurrentInstance().getExternalContext();
InputStream inputStream=null;
try {
inputStream = new FileInputStream(new File("/Reports/"+reportName);
} catch (FileNotFoundException e) {System.out.println("Error al cargar el report");}
FacesContext fcontext = FacesContext.getCurrentInstance();
try {
JRExporter exporter = null;
JasperPrint jasperPrint =JasperFillManager.fillReport(inputStream, params, conn);
HttpServletResponse response =(HttpServletResponse)econtext.getResponse();
response.setHeader("Content-disposition", "attachment; filename=report.pdf");
response.setContentType("application/x-download");
response.addHeader("Content-Type", "application/x-download");
exporter = new JRPdfExporter();
exporter.setParameter(JRExporterParameter.JASPER_PRINT,jasperPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM,response.getOutputStream());
if (exporter != null) {
exporter.exportReport();
}
}catch (Exception ex) {System.out.println("---->"+ex);}
fcontext.responseComplete();
}
Nota: No hemos mostrado como obtener la conexión, para ello pueden mirar el siguiente post.
JasperReports + Java: Convertir report a distintos formatos.
Aquí les dejo una clase de ejemplo, para poder transformar un report, creado con JasperReports, en distintos formatos.(pdf, html, csv, xls,…)
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import net.sf.jasperreports.engine.JRExporterParameter;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.export.JRCsvExporter;
import net.sf.jasperreports.engine.export.JRRtfExporter;
import net.sf.jasperreports.engine.export.JRXlsExporter;
import net.sf.jasperreports.engine.export.JRXlsExporterParameter;
public class Jasper {
public Jasper() {
}
public static void main(String[] args) {
Jasper jasper = new Jasper();
Connection conn = null;
//Cargamos el driver JDBC
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
}catch (ClassNotFoundException e) {
System.out.println("JDBC Driver not found.");}
try {
String dburl = "jdbc:oracle:thin:@localhost:1521:XE";
conn = DriverManager.getConnection(dburl,"user","pass");
}catch (SQLException e){
System.out.println("Error de conexión: " + e.getMessage());}
JasperReport report;
try {
report = JasperCompileManager.compileReport("C:\\report.jrxml");
JasperPrint print = JasperFillManager.fillReport(report, null, conn);
//Exporta el informe a PDF
String destFileNamePdf="C:\\trabajo\\reporte1.pdf";
//Creación del PDF
JasperExportManager.exportReportToPdfFile(print, destFileNamePdf);
/*Otras importaciones
//Exporta el informe a HTML
JasperExportManager.exportReportToHtmlFile(print, destFileNamePdf);
//Exporta el informe a excel
OutputStream ouputStream= new FileOutputStream(new File("C:/trabajo/catalog.xls"));
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
JRXlsExporter exporterXLS = new JRXlsExporter();
exporterXLS.setParameter(JRXlsExporterParameter.JASPER_PRINT,print);
exporterXLS.setParameter(JRXlsExporterParameter.OUTPUT_STREAM,byteArrayOutputStream);
exporterXLS.exportReport();
ouputStream.write(byteArrayOutputStream.toByteArray());
ouputStream.flush();
ouputStream.close();
//Exporta el informe a csv
String destFileNamePdf="C:\\trabajo\\reporte1.csv";
JRCsvExporter exporter = new JRCsvExporter();
File destFile = new File(destFileNamePdf);
exporter.setParameter(JRExporterParameter.JASPER_PRINT, print);
exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME,
destFile.toString());
exporter.exportReport();
//Exporta el informe a rtf
OutputStream ouputStream= new FileOutputStream(new File("C:/trabajo/catalog.rtf"));
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
JRRtfExporter exporter = new JRRtfExporter();
exporter.setParameter(JRExporterParameter.JASPER_PRINT, print);
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, ouputStream);
exporter.exportReport();
ouputStream.write(byteArrayOutputStream.toByteArray());
ouputStream.flush();
ouputStream.close();
*/
} catch (Exception e) {System.out.println("Error"+e);}
}
}
