Sigueme en Facebook Sigueme en Twitter Sigueme en Instagram Sigueme en Youtube
JC Mouse Bolivia
Index / iReport / Incrustar reporte en formulario java

Incrustar reporte en formulario java

Autor 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

Si te ha gustado podrías compartirlo o dejar un comentario. ¡Muchas gracias!
Autor: JC Mouse

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! :)

También Te Podría Interesar

Biblioteca Matemática avanzada para java

Biblioteca Matemática avanzada para java

Java cuenta con la clase java.lang.Math  la cual contiene métodos para realizar operaciones numéricas básicas como las f...

jFace – Crea retratos hablados

jFace – Crea retratos hablados

La policia, el FBI u otros organismos similares utilizaban a dibujantes para realizar el “retrato hablado” d...

Código de Control v7 en JavaScript

Código de Control v7 en JavaScript

En esta oportunidad, se deja a disposición de la comunidad de programadores de Bolivia y también porque no, del que quie...

Introducción a Scene Builder y MVC (Parte II)

Introducción a Scene Builder y MVC (Parte II)

Segunda parte del tutorial [Introducción a Scene Builder y MVC (Parte I)]. En esta segunda parte, completaremos el diseñ...

Hangman: El juego del ahorcado en java

Hangman: El juego del ahorcado en java

El Juego del ahorcado o Hangman, es un clásico juego de mesa que consiste en adivinar la palabra secreta, si no lo consi...

Procedimientos almacenados en java

Procedimientos almacenados en java

En este tuto realizaremos la implementación y ejecución de procedimientos almacenados de MySQL en Java, si quieres darle...

4 comentarios en “Incrustar reporte en formulario java”

  1. berceliuz dice:

    como podría visualizar un pdf ya creado .
    es posible hacerlo con esas librerías ?
    gracias por la respuesta.

    1. Mouse dice:

      bueno tendrías que buscar unas librerias para eso, tal vez Apache PDFBox

      1. berceliuz dice:

        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

      2. Pergen dice:

        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)

Los comentarios estan cerrados

Comparte lo que sabes

Categorias

Últimas entradas

En diciembre de 1990 se desarrolló una aplicación llamada WorldWideWeb en una máquina NeXT (programado con el lenguaje O...

En un post anterior vimos como usar la herramienta XJC del JDK para generar clases java desde esquemas XSD (XML Schema D...

Kali Linux es un sistema operativo de pruebas de intrusión con una gran colección de herramientas forenses y de segurida...

XJC es una herramienta de linea de comandos del compilador de esquemas de JAXB que se puede utilizar para convertir un e...

Android Bolivia

MAUS