iReports y ADF

Si deseamos hacer que dentro de nuestro aplicativo ADF se realice la creación de reportes en PDF hechos con la ayuda de la API de Jasper y iReports, aqui les dejo un ejemplo de codigo con el cual podran generar el PDF dentro de su maquina servidor.

public String crearPDF(){
   String fileName = "Reporte.jasper";
   String outFileName = "Reporte.pdf";
   Map parameters = new HashMap();
   parameters.put("ID_EMPLOYEE", 170);

   try{
        InitialContext initialContext = new InitialContext();
        FacesContext fcontext = FacesContext.getCurrentInstance();
        DataSource ds = (DataSource)initialContext.lookup("java/hrds"); // get from your application module configuration
        Connection conn = ds.getConnection();
               
        // Fill the report using an Connection of your dataSource of Weblogic
        JasperPrint print = JasperFillManager.fillReport(fileName, parameters, conn);
            
        // Create a PDF exporter
        JRExporter exporter = new JRPdfExporter();
   
        // Configure the exporter (set output file name and print object)
        exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME,outFileName);
        exporter.setParameter(JRExporterParameter.JASPER_PRINT, print);
               
        // Export the PDF file
        exporter.exportReport();
   
   } catch (SQLException e) {
                e.printStackTrace();
   }catch (NamingException e){
                e.printStackTrace();
   }catch (FileNotFoundException e) {
                e.printStackTrace();
   } catch (JRException e) {
                e.printStackTrace();
   } catch (ClassNotFoundException e) {
                e.printStackTrace();
   }
   return null;
}

Ahora bien que si lo que desean es que el PDF se genere y el usuario lo descargue en el mismo paso aqui tienen este otro ejemplo de codigo.
public void generarPDF_actionListener(ActionEvent actionEvent) {
        // Add event code here...
        // Add event code here...
        ExternalContext econtext =
            FacesContext.getCurrentInstance().getExternalContext();
        InputStream inputStream = null;
        Map params = new HashMap();
        params.put("EID", 180);

        try {
            InitialContext initialContext = new InitialContext();
            FacesContext fcontext = FacesContext.getCurrentInstance();

            DataSource ds =
                (DataSource)initialContext.lookup("java/hrds"); // get from your application module configuration
            Connection conn = ds.getConnection();
            inputStream =
                    new FileInputStream(new File("Reporte/report1.jasper"));

            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();
            }
            fcontext.responseComplete();

        } catch (FileNotFoundException e) {
            System.out.println("Error al cargar el report -->" + e);

        } catch (NamingException e) {
            System.out.println("Error en Naming -->" + e);
        } catch (SQLException e) {
            System.out.println("Error en la BD");
        } catch (Exception ex) {
            System.out.println("---->" + ex);
        }
    }
Para los codigos anteriores funcionen correctamente anexen las siguiente librerias

Espero les sea de ayuda no olviden comentar cualquier duda.

Un comentario en “iReports y ADF

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s