como llamar un reporte hecho en iReport desde mi aplicación

3,361 views
Skip to first unread message

marthica

unread,
Apr 11, 2009, 9:45:50 PM4/11/09
to JavaSOS
Hola a tod@s

He elaborado un reporte en iReport 3.1.4, una factura de venta, tiene
un paramétro id, con el fin de que cada que pulse el botòn preview,
me
pregunte el número de la factura que voy a imprimir.


Mi problema radica en que no se como invocar este reporte desde la
aplicación de Facturación, que es un programa de escritorio,
elaborado
en Netbeans IDE 6.5


Agradezco muchisimo la ayuda que me puedan brindar.


Martha Cecilia


William Diaz Pabón

unread,
Apr 11, 2009, 10:54:37 PM4/11/09
to jav...@googlegroups.com
Si es para una aplicacion web y que lo que se desea imprimir salga de la ventana del navegador usas algo asi:

            HashMap param = new HashMap();
            param.put("id", id);

            HttpServletResponse response =
                (HttpServletResponse)context.getExternalContext().getResponse();
           
            InputStream reportStream =
                context.getExternalContext().getResourceAsStream("Factura.jasper");
           
            ServletOutputStream servletOutputStream =
                response.getOutputStream();

            connection =
                    this.serviceLocator.getDataSourceGeneral().getConnection();
           
            JasperRunManager.runReportToPdfStream(reportStream,
                                                  servletOutputStream, param,
                                                  connection);
            connection.close();
            connection = null;
            SimpleDateFormat formatFecha = new SimpleDateFormat("dd.MM.yyyy");
//            StringBuffer header = new StringBuffer("attachment;");
            StringBuffer header = new StringBuffer("filename=\"");
//            header.append("filename=\"");
            header.append(formatFecha.format(new Date()));
            header.append(".pdf\"");
            response.setContentType("application/pdf");
            response.setHeader("Content-disposition", header.toString());
            servletOutputStream.flush();
            servletOutputStream.close();
            context.responseComplete();

Donde id, es el identificador que pides.

Esto se usa con el .jasper que es el reporte ya compilado.

Esto se muestra dentro de un navegador y el nombre del archivo pdf que muestra tiene la fecha por siacaso.

Espero te sirva.


El 11 de abril de 2009 21:10, IP zer0 <ip....@gmail.com> escribió:
Hola.

Bueno en tu app de Netbeans:

            Map parameters = new HashMap();
            parameters.put("PARAMETRO", VALOR);
            JasperReport jasperReport = (JasperReport) JRLoader.loadObject("reporte.jasper");
            JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, db.getConnnection());
            JasperViewer.viewReport(jasperPrint);

VALOR vendria a ser el id que le pasas.

db es la instancia de una clase que tiene como que realiza y gestiona las conexiones con la Base de datos.

Suerte..

2009/4/11 marthica <marthi...@gmail.com>



--
Joseph Cesar Mena S. a.k.a. IP-zer0
+51 (1) 991526548
L1nuX R3g1$t3r3d U53r #412302
    .~.      
  ( 0 0 )
  /  V  \
 //       \\  
/((   _    ))\

 |\__
(:>__)(
 |/





--
Cordialmente.


William Diaz Pabón
Gerente de Tecnología
InfoTech Soluciones Ltda.
Cel: 3173314172
Tunja - Boyacá - Colombia
http://www.infotechsoluciones.com
Tutoriales Técnicos:
http://tutorialestecnicos.blogspot.com/

marthica

unread,
Apr 11, 2009, 11:09:04 PM4/11/09
to JavaSOS
Muchas Gracias a IP zer0 y a William

La instrucciòn que IP zer0 me envió, me funcìonò a la perfecciòn,
claro que me ayude un poquito del código que de William.....

En la parte de "PARAMETRO" no sabía que escribir pero cuando revise el
de William, me di cuenta de debía colocar "id".

Un abrazo a los dos.



Martha Cecilia
> El 11 de abril de 2009 21:10, IP zer0 <ip.z...@gmail.com> escribió:
>
>
>
>
>
> > Hola.
>
> > Bueno en tu app de Netbeans:
>
> >             Map parameters = new HashMap();
> >             parameters.put("PARAMETRO", VALOR);
> >             JasperReport jasperReport = (JasperReport)
> > JRLoader.loadObject("reporte.jasper");
> >             JasperPrint jasperPrint =
> > JasperFillManager.fillReport(jasperReport, parameters, db.getConnnection());
> >             JasperViewer.viewReport(jasperPrint);
>
> > VALOR vendria a ser el id que le pasas.
>
> > db es la instancia de una clase que tiene como que realiza y gestiona las
> > conexiones con la Base de datos.
>
> > Suerte..
>
> > 2009/4/11 marthica <marthica....@gmail.com>
> Tutoriales Técnicos:http://tutorialestecnicos.blogspot.com/- Ocultar texto de la cita -
>
> - Mostrar texto de la cita -
Reply all
Reply to author
Forward
Message has been deleted
0 new messages