Fetishcode…Thinking in objects

Thinking in objects

Entradas etiquetadas ‘JasperReports

Integración de JasperReports en ADF.

sin comentarios

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.

Escrito por fetishcode

Noviembre 8, 2009 a 7:09 pm

Escrito en ADF

Etiquetado con ,

JasperReports + Java: Convertir report a distintos formatos.

con 6 comentarios

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);}

    }
}

Escrito por fetishcode

Enero 23, 2009 a 9:12 am

Escrito en Java

Etiquetado con