Aprende Java Aprende Php Aprende C++ Aprende HTML 5 Aprende JavaScript Aprende JSON Aprende MySQL Aprende SQLServer Aprende Visual Basic 6 Aprende PostgreSQL Aprende SQLite Aprende Redis Aprende Kotlin Aprende XML Aprende Linux VSC Aprende Wordpress Aprende Laravel Aprende VueJS Aprende JQuery Aprende Bootstrap Aprende Netbeans Aprende Android
Sigueme en Facebook Sigueme en Twitter Sigueme en Instagram Sigueme en Youtube Sigueme en TikTok Sigueme en Whatsapp
Home / iReport / Incrustar reporte en formulario java

Incrustar reporte en formulario java

Por jc mouse domingo, diciembre 13, 2015

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());
}

reporte incrustado

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());
}

reportes java

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:

  • Librerías de Jasperreport 5.1.0
  • Driver de conexión «MySQL-connector-java» versión 5.1.23
  • Los reportes y el código SQL están en el RAR de descarga. La base de datos se llama «dbTest»
  • Servidor de base de datos MySQL

Enjoy!

Tags

Artículos similares

Exportar registros MySQL a Excel

Java Excel API es un API para java que permite a los desarrolladores leer y escribir en hojas de cálculo Excel. jexcelap[...]

Como paginar registros en Java/Access

En este post veremos una forma de realizar la paginación en una base de datos Access utilizando el lenguaje de programac[...]

Autenticación en php con MySql y POO

Autenticación en una pagina web es el proceso de confirmar que un usuario es quien dice ser, asi de simple. En el siguie[...]

Estilos condicionales en iReport

iReport nos da la posibilidad de dar un formato condicional a los diferentes registros resultado de nuestras consultas S[...]

Bloquear orientación de la pantalla

Cuando escribimos aplicaciones para android debemos tener cuidado al diseñar la interfaz en la posición que tomaran los[...]

TextInput – Material Design

TextInput es una caja de texto que implementa el estilo de Material Design popular en dispositivos móviles, pero este sw[...]