You are on page 1of 2

Como llamar a un reporte hecho en iReports desde una aplicacion web

Mon, 05/25/2009 - 16:31 drac94 Una vez que hemos creado nuestro reporte en ireports, lo siguiente es mostrarselo al usuario o darle la opcion de guardarlo, en el siguiente codigo mostrare como hacerlo de tres formas: Mostrarlo en el navegador, Exportarlo a PDF y exportarlo a xls Para empezar lo que es comun a todos los casos:
java.sql.Connection conn = null; //conexion a la BD, en este caso es u n reporte el cual se rellena desde una BD String dirInformes = "reportes";//nombre de la carpeta donde tienes el informe String reporteNombre = "reporte1"; // nombre del reporte a ejecutar

String reporteJasper = /*"reportes\\" +*/ dirInformes +"\\"+ reporteNombre; reporteJasper = request.getSession().getServletContext().getRealPath(reporteJasper); //


construimos la ruta del reporte Map parameters = new HashMap();// parametros parameters.put("par1", "valor1"); parameters.put("par2", "valor2"); ... parameters.put("parN", "valorN");

Mostrarlo en el navegador
OutputStream oS = null; oS = response.getOutputStream(); // Compilamos el .jrxml y lo cargamos final String jasperName = JasperCompileManager.compileReportToFile(rep orteJasper); final JasperReport report = (JasperReport) JRLoader.loadObject(jasperN ame); // Rellenamos el report pasndole al informe la lista de parmetros y el datasource final JasperPrint print = JasperFillManager.fillReport(report, paramet ers, conn); // Exportamos el informe a HTML final JRHtmlExporter exporter = new JRHtmlExporter(); exporter.setParameter(JRExporterParameter.JASPER_PRINT, print); exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, oS); exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI,"image? image="); exporter.exportReport();

Exportarlo a PDF:

response.setContentType(CONTENT_TYPE); JasperReport jasperReport = null; jasperReport = JasperManager.loadReport(new FileInputStream(reporteJas per)); JasperPrint jasperPrint = null; jasperPrint = JasperManager.fillReport(jasperReport, parameters, conn) ; OutputStream oS = null; oS = response.getOutputStream(); JasperManager.printReportToPdfStream(jasperPrint, oS);

Exportarlo a xls:
int bit; File f; InputStream in; ServletOutputStream out; JasperReport jasperReport = null; jasperReport = JasperManager.loadReport(new FileInputStream(reporteJas per)); JasperPrint jasperPrint=JasperFillManager.fillReport (jasperReport, pa rameters, conn); String xlsFileName = "reporte.xls"; //Creacion del XLS JRXlsExporter exporter = new JRXlsExporter (); exporter.setParameter (JRExporterParameter.JASPER_PRINT, jasperPrint); exporter.setParameter (JRExporterParameter.OUTPUT_FILE_NAME, xlsFileNa me); exporter.setParameter (JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET, B oolean.TRUE); exporter.exportReport (); // En este punto ya esta Creado el XLS // Ahora leemos el fichero y forzamos al navegador a que nos descargue el fichero. f = new File ( xlsFileName); response.setContentType ("application/vnd.ms-excel"); //Tipo de ficher o. response.setHeader ("Content-Disposition", "attachment;filename=\"" + xlsFileName + "\""); //Configurar cabecera http in = new FileInputStream (f); out = response.getOutputStream (); bit = 256; while ((bit)>= 0) { bit = in.read (); out.write (bit); } out.flush (); out.close (); in.close ();

You might also like