sábado, 18 de junio de 2016

JasperReport almacenar generar reporte


JasperReport Reportes

Hola amigos el dia de hoy les muestro el codigo para generar reportes para aplicaciones web y almacenarlos en algun lado del servidor.





/*Genera reporte*/
 public String GenerarReporte(String rep, HashMap params) {
        try {
            String reporPath = "";
            reporPath = FacesContext.getCurrentInstance().getExternalContext().getRealPath(rep);
            Context ctx= new InitialContext();
            //LoginBean lb = new LoginBean();
            //String ip = lb.getServerIP();
            DataSource ds;
            //Desarrollo
            //ds = (DataSource)ctx.lookup("jdbc/desa");
            //Produccion
            ds = (DataSource)ctx.lookup("jdbc/caricai");
            Connection cn = ds.getConnection();
            JasperPrint jasperprint = JasperFillManager.fillReport(reporPath, params, cn);
            HttpServletResponse httpserveltresponse= (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse();
            httpserveltresponse.setContentType("application/pdf");
            ServletOutputStream servletOutputStream = httpserveltresponse.getOutputStream();
            JasperExportManager.exportReportToPdfStream(jasperprint, servletOutputStream);
            FacesContext.getCurrentInstance().responseComplete();
        } catch (NamingException | SQLException | JRException | IOException ex) {
            System.out.println("Error"+ex);
            System.out.println("Error"+ex);
            System.out.println("Error"+ex);
        }
        return "";
    }

    /*Alamacena reporte */
    public String saveReporte(String rep, HashMap params) {
        try {
            String reporPath = "";
            reporPath = FacesContext.getCurrentInstance().getExternalContext().getRealPath(rep);
            Context ctx= new InitialContext();
            DataSource ds;   
            ds = (DataSource)ctx.lookup("jdbc/caricai");
            Connection cn = ds.getConnection();
            JasperPrint jasperprint = JasperFillManager.fillReport(reporPath, params, cn);
            HttpServletResponse httpserveltresponse= (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse();
            httpserveltresponse.setContentType("application/pdf");      
            /*ubicacion donde se guarda el archivo*/
            OutputStream output = new FileOutputStream(new File("/opt/boleta.pdf"));
            JasperExportManager.exportReportToPdfStream(jasperprint, output);                       
        } catch (NamingException | SQLException | JRException | IOException ex) {
            System.out.println("Error"+ex);
            System.out.println("Error"+ex);
            System.out.println("Error"+ex);
        }
        return "";
    }

No hay comentarios:

Publicar un comentario