Jasperreport nos brinda su propio visor de reportes, sin embargo en ocasiones queremos mostrar los informes directamente en algún formulario de la aplicación, es decir incrustar el reporte ya sea en un jframe o jpanel. Lograr esto es bastante sencillo, si nos fijamos en el API de JasperReport podremos observar que el visor JRViewer desciende de JPanel por lo que basta con usar el método ADD para agregar el reporte en un jpanel.
Class JRViewer java.lang.Object java.awt.Component java.awt.Container javax.swing.JComponent javax.swing.JPanel net.sf.jasperreports.view.JRViewer
Pero observemos esto con dos ejemplo.
Para un reporte sin parámetros hacemos lo siguiente:
try { //archivo jasper URL jasperUrl = this.getClass().getResource("/com/bolivia/report/rp_people1.jasper"); JasperReport report = (JasperReport) JRLoader.loadObject(jasperUrl); JasperPrint jasperPrint = JasperFillManager.fillReport(report, null, new JMySQL().getConnection() ); //se crea el visor con el reporte JRViewer jRViewer = new JRViewer(jasperPrint); //se elimina elementos del contenedor JPanel jpContainer.removeAll(); //para el tamaño de l reporte se agrega un BorderLayout jpContainer.setLayout(new BorderLayout()); jpContainer.add(jRViewer, BorderLayout.CENTER); jRViewer.setVisible(true); jpContainer.repaint(); jpContainer.revalidate(); } catch (JRException ex) { System.err.println(ex.getMessage()); }
Para un reporte con parámetros:
Similar al anterior pero usamos un MAP para los parámetros
try{ //archivo jasper URL jasperUrl = this.getClass().getResource("/com/bolivia/report/rp_people2.jasper"); JasperReport report = (JasperReport) JRLoader.loadObject(jasperUrl); //para los parametro Map parametros = new HashMap(); parametros.clear(); //Nuestro parametro se llama "pLastName" parametros.put( "pLastName", txtParameter.getText() ); //agregamos los parametros y la conexion a la base de datos JasperPrint jasperPrint = JasperFillManager.fillReport(report, parametros, new JMySQL().getConnection()); //se crea el visor con el reporte JRViewer jRViewer = new JRViewer(jasperPrint); //se elimina elementos del contenedor JPanel jpContainer.removeAll(); //para el tamaño del reporte se agrega un BorderLayout jpContainer.setLayout(new BorderLayout()); jpContainer.add(jRViewer, BorderLayout.CENTER); jRViewer.setVisible(true); jpContainer.repaint(); jpContainer.revalidate(); } catch (JRException ex) { System.err.println(ex.getMessage()); }
Podemos ver una clase JMySQL(), buenos esa clase nos da la conexión a la base de datos.
El código completo te lo dejo en este enlace pobre <<Soy un enlace>>
Para ejecutar el código, necesitas:
Enjoy!
Yo soy yo :) JC Mouse, Soy orgullosamente boliviano soy fundador y CEO de la web jc-Mouse.net uno de las pocas web en emprendimiento y tecnología en Bolivia.
Toda la información que encuentres en este sitio es y sera completamente gratis siempre, puedes copiar, descargar y re-publicar si así lo deseas en otros blogs o sitios web, solo te pido a cambio que dejes una referencia a esta web. Esto nos ayuda a crecer y seguir aportando. Bye
Enjoy! :)
Antes de la aparición de los celulares inteligentes y de las grandes mejoras tecnológicas que trajeron con ellas, las ap...
Hace tiempo pidieron un video tutorial sobre como crear sus propios componentes swing java, lamentablemente debo decir q...
Song Maker es el nuevo experimento de Google Chrome Music Lab que permite al usuario crear música desde el navegador a t...
Una Interface Funcional es una interface que contiene uno y solo un método abstracto aunque puede contener métodos por d...
Netbeans es uno de los entornos de desarrollo integrado (Integrated Development Environment – IDE) más conocidos...
Cuando realizamos un proyecto java utilizando fuentes de nuestro sistema, al momento de distribuir el programa y ejecuta...
Los comentarios estan cerrados
Si trabajas con redes sociales (RRSS) a continuación te muestro tres herramintas gratuitas que te ayudaran a la hora de...
Por lo general se usan transacciones a nivel base de datos y posteriormente se llaman estos a través de procedimientos a...
En este post, aprenderemos como conectar Visual Basic 6 con SQL Server, abrir una tabla, leer su contenido y mostrar est...
Lo que veremos en este post es la configuración del driver para PHP de SQL Server que ha creado Microsoft el cual permit...
como podría visualizar un pdf ya creado .
es posible hacerlo con esas librerías ?
gracias por la respuesta.
bueno tendrías que buscar unas librerias para eso, tal vez Apache PDFBox
investigando un poco la documentación de Apache PDFBox parece que no tiene un visor de pdf.
y eso es lo que necesito . si pudieras recomendarme otras librerías o alguna forma de como hacerlo.
gracias
hola, soy nuevo en la programacion con eclipse.
quiero hacer un reporte con graficos pero me sale el error de exception:
porfa si alguien me ayuda tengo Ireport 5.6 . gracias desde Malabo Guinea Ecuatorial
Exception in thread «AWT-EventQueue-0» java.lang.NoClassDefFoundError: org/apache/commons/collections/map/ReferenceMap
at net.sf.jasperreports.engine.component.ComponentsEnvironment.(ComponentsEnvironment.java:56)
at net.sf.jasperreports.engine.component.ComponentsEnvironment.getInstance(ComponentsEnvironment.java:76)
at net.sf.jasperreports.engine.xml.JRReportSaxParserFactory.getSchemaLocations(JRReportSaxParserFactory.java:93)
at net.sf.jasperreports.engine.xml.BaseSaxParserFactory.configureParser(BaseSaxParserFactory.java:153)