Foros del Web » Programación para mayores de 30 ;) » Java »

Problema con Ireport

Estas en el tema de Problema con Ireport en el foro de Java en Foros del Web. Hola a todos, bueno mi problema no pasa por la creación del reporte con Ireport, sino que no se como ejecutarlo desde un servlet. Al ...
  #1 (permalink)  
Antiguo 28/02/2007, 08:10
 
Fecha de Ingreso: septiembre-2006
Mensajes: 10
Antigüedad: 17 años, 7 meses
Puntos: 0
Problema con Ireport

Hola a todos, bueno mi problema no pasa por la creación del reporte con Ireport, sino que no se como ejecutarlo desde un servlet.

Al reporte le entrego un identificador y en base al dato muestra toda la información de ese numero de registro mas un grafico, pero el problemas es que no he podido ejecutar ningún reporte, por favor alguien me puede ayudar con un código de un servlet, que llame a un reporte creado con Ireport (1.2.8) de extensión jrxml

Gracias.

Bueno miembros del foro luego de mucho tiempo buscando la solucion a mi problema lo he encontrado y para todos aquellos que tienen las mismas dudas que yo aqui les dejo la slucion. En la siguiente respuesta

Última edición por camilum; 06/03/2007 a las 07:24 Razón: Solucion encontrada
  #2 (permalink)  
Antiguo 06/03/2007, 07:39
 
Fecha de Ingreso: septiembre-2006
Mensajes: 10
Antigüedad: 17 años, 7 meses
Puntos: 0
Re: Problema con Ireport

Bueno como les comente aquí esta la solución.

Pero primero que nada le agradezco a un amigo, Marcelo, que también es usuario de este foro, ya que gracias a el obtuve la solución, de muchas formas trate de encontrar una solución a mi problema y no obtuve ningún resultado, pero como lo comente me ayudaron, si bien estuve cerca de encontrar la solución, mi amigo me ayudo demasiado, bueno ahora a lo prometido.


En si el siguiente código corresponde a un servlet qeu se encargara de la labor de procesar el reporte:

public class LlamaReporte extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.handleSubmit(request, response);
}

public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.handleSubmit(request, response);
}

protected void handleSubmit(HttpServletRequest request, HttpServletResponse response) throws IOException {

PrintWriter out = null;
// Obtener el nombre del reporte atravez de un request por ejemplo
// reporte.jasper
String reReporte = request.getParameter("reporte");

System.out.println("************************ el reporte es "+reReporte);

try {
Connection con = DbPoolManager.getConnection("mysql");

//ruta en donde se encuentra el reporte
String rptfilename = "/Reportes/"+reReporte;
HashMap params = new HashMap();
// consulta sq
String sql="SELECT * from ventas where id = '10' ";

params.put("sql_query", new String(sql));

JasperPrint jasperprint = JasperFillManager.fillReport(getServletContext().g etRealPath("/") + rptfilename, params, con);

// export report to pdf and stream back to browser
byte[] pdfasbytes = JasperExportManager.exportReportToPdf(jasperprint) ;

ServletOutputStream outstream = response.getOutputStream();
response.setContentType("application/pdf");
response.setContentLength(pdfasbytes.length);

response.setHeader("Content-disposition", "inline; filename=\"Reporte.pdf\"");
outstream.write(pdfasbytes);

} catch (Exception ne) {

out = response.getWriter();

out.println("<html>");
out.println("\t<body>");
out.println("\t\t<br /><br />");
out.println("\t\tA ocurrido un error no es posible "
+ "despelgar el reporte "
+ "en este momento.");
out.println("\t\t<br /><br />");
out.println("\t\tMensaje de error ==> " + ne.getLocalizedMessage());
out.println("\t\t<br />");
out.println("\t\tCausa del error ==> " + ne.getCause());
out.println("\t</body>");
out.println("</html>");
} finally {
try {

} catch (Exception e) {
e.printStackTrace();

}
}
}
}


/*
Para obtener el archivo reporte.jasper: En el momento de compilar atravez de irepor nuestro reporte se genera el archivo nombredelreporte.jasper, es este archivo el que se debe dejar en una ruta conocida, como por ejemplo
nombredelproyecto\web\reportes\reporte.jasper es por esto la razon de la linea de codigo
String reReporte = request.getParameter("reporte");
y posterior
String rptfilename = "/Reportes/"+reReporte;

*/
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:16.