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! :)
Java Help es (o era) una librería para java que permitía añadir ventanas de ayuda HTML a nuestros proyectos, al ser una...
ADO.NET proporciona un puente entre los objetos creados en VB o C# y la base de datos MySQL asociada a la aplicación, a...
El patrón de desbloqueo es una medida de seguridad que tienen algunos teléfonos inteligentes para evitar el acceso al di...
El SystemTray/Bandeja del Sistema o como también se le llama «Área de Notificación» es la sección de la barra de tareas...
Cuando escribimos aplicaciones para android debemos tener cuidado al diseñar la interfaz en la posición que tomaran los...
En este post crearemos una aplicación sencilla para mandar mensajes de texto desde android. Necesitamos IDE: Eclipse + S...
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)