Pregunta: | 48263 - COMO MANEJAR EL IREPORTS DESDE SERVLETS |
Autor: | Francisco Hernandez |
Estoy diseƱando una aplicacion con Servlets y JSP, donde quiero que desde un servlet pueda traer(jalar) un reporte creado en ireports.
Alguien me pudiera ayudar porfavor!!! |
Respuesta: | MARVIN ANTONIO CALLEJAS |
<%@page import="com.lowagie.text.*"%>
<%@page import="com.lowagie.text.pdf.*"%> <%@page import="it.businesslogic.ireport.connection.JRXMLDataSource"%> <%@page import="net.sf.jasperreports.engine.export.JRPdfExporter"%> <%@page import="net.sf.jasperreports.engine.*"%> <%@page import="java.awt.*"%> <%@page import="java.awt.font.*"%> <%@page import="java.util.*"%> <%@page import="java.sql.*"%> <%@page import="java.io.*"%> <%@page import="java.text.*"%> <%@page import="javax.servlet.*"%> <%@page import="javax.servlet.http.*"%> <%@page import="com.codecharge.db.*"%> <%@page import="com.codecharge.util.*"%> <% Map param=new HashMap(); Connection conec=DriverManager.getConnection("jdbc:jtds:sqlserver://svrsql00:1433/SIAP","usuario","password"); byte[] reporteByte=null; String imagen=application.getRealPath("/jsp/reportes/imagenes/escudo_pequeno.jpg"); //Fijando parametros del reporte param.put("grupo",pGrupo); param.put("estructOrg",estructOrg); param.put("fecha",fInv); param.put("fechaHora",fRecep); param.put("rutaImg",imagen); param.put("name",name); File reporte=new File(application.getRealPath("/jsp/reportes/invitacion.jasper")); String archJasper=reporte.getAbsolutePath(); try { JasperPrint impresion=JasperFillManager.fillReport(archJasper,param,conec); reporteByte=JasperRunManager.runReportToPdf(archJasper,param,conec); JRExporter exporter=new JRPdfExporter(); ByteArrayOutputStream reportePDF=new ByteArrayOutputStream(); exporter.setParameter(JRExporterParameter.JASPER_PRINT,impresion); exporter.setParameter(JRExporterParameter.OUTPUT_STREAM,reportePDF); exporter.exportReport(); response.setContentType("application/pdf"); response.setContentLength(reporteByte.length); response.getOutputStream().write(reporteByte); response.getOutputStream().flush(); response.getOutputStream().close(); } catch(JRException e) { e.printStackTrace(); } catch(Exception e) { e.printStackTrace(); } conec.close(); %> |