Como crear Reportes en Java con Imagenes desde una Base de Datos

Como crear Reportes en Java con Imagenes desde una Base de Datos

Como crear Reportes en Java con Imagenes desde una Base de Datos
5 (100%) 2 votos

En este Articulo veremos como crear reportes en Java utilizando algunas librerias como IcePDF(Visor PDF), Jasperreports(Crear Reportes) y diseñando una plantilla con ireport designer. Realizaremos un ejemplo utilzando imagenes, estas representaran fotos de empleados y estaran almacenadas en una base de datos, para realizar la conexion con la Base de Datos utilizaremos el conector de mysql para java. El reporte consistira de la imagen del empleado, nombre, tipo, ciudad y descripcion de el empleado. Veamos entonces como crear reportes en Java 😀  comencemos…

Requerimientos

Desarrollo

Para comenzar a ver como crear reportes en java mediante un ejemplo vamos primero a ver el procedimiento por encima para comprender lo que necesitamos y lo que vamos
a hacer.

  • Escenario

Tenemos informacion almacenada en una tabla de una base de datos, es una tabla llamada personas donde se almacena informacion relacionada con cada persona y una foto.

como crear reportes en java 1

  • Problema

Queremos realizar una aplicacion capaz de leer la informacion de esa tabla, generar reportes en PDF y visualizarlos dentro de esta aplicacion.

  • Solucion

Primero que nada necesitamos crear un nuevo proyecto en Netbeans con la siguiente estructura:

como crear reportes en java 2

El paquete proceso tiene las clases:
BaseDatos: Informacion relacionada con la manipulacion de la informacion de la base de datos.
Consulta: Interfaz Necesaria para crear los Reportes, contiene la informacion que se mostrara en los reportes.
Main: Clase Principal.
El paquete vista tiene las siguientes clases:
Ventana: Es una JFrame con un menu para generar reportes y un panel principal donde se generara la interfaz para visualizar el PDF llamado panel_reportes

  • Librerias Necesarias

Para crear reportes en Java necesitaremos agregar a nuestro proyecto algunas librerias necesarias, estas librerias estan para descargar arriba en la seccion de
requerimientos. Necesitamos en concreto estas librerias para relizar 3 cosas en nuestra aplicacion:
Visor PDF: icepdf-core y icepdf-viewer
Crear Reportes: Todas las incluidas en el archivo comprimido jasper.rar
Conector Mysql con Java: mysql-connector-java-5.0.8-bin

  •  Declaraciones

En resumen el procedimiento para crear reportes en java es:

  • 1.Preparar la Interfaz que visualiza el PDF

Aqui necesitaremos realizar 3 cosas, detener el Controlador Swing, destruir el controlador Swing y limpiar componentes de el panel, dibujar GUI en el panel.

  • 2.Obtener Informacion de la base de datos y Generar el PDF.

Primeramente crearemos una lista de tipo Consulta, que sera la clase que usaremos para almacenar la informacion de la base de datos, esta clase luce asi:

A esta lista le asignamos el resultado, que es una lista tambien, de el metodo getInformacion de la clase donde tenemos la informacion de la base de datos, este metodo luce asi:

Despues utilizando los metodos de las librerias de JasperReports creamos el reporte utilizando una plantilla llamada plantilla.jasper que creamos con ireports Designer, mas adelante explicaremos como crear esta plantilla correctamente, por ahora seguimos explicando el codigo,

Llenamos el reporte utilizando la plantilla y la informacion en forma de colleccion de objetos de tipo Consulta que obtuvimos en el metodo anterior de la clase BaseDatos
Exportamos en la ruta Documentos/temporal.pdf

  • 3.Abrir y Visualizar el PDF

Aqui Abrimos el archivo temporal que creamos anteriormente y le decimos al controlador que lo abra.
Finalmente actulizamos el panel para que se reflejen los cambios.

  • Crear la plantilla para el reporte en ireport Designer

En la linea

Utilizamos una plantilla con extension .jasper, este archivo se crear con el programa ireports Designer, una vez instalado creamos un nuevo reporte blank A4 y lo llamaremos como quieramos yo lo llame plantilla

como crear reportes en java 3
Ahora vemos una hoja dividida en secciones damos click sobre la seccion “Page Header” y en “Band height” cambiamos el valor a 0, esto la eliminara

como crear reportes en java 4

Repetimos esto para todas las secciones excepto Title, Detail 1, Summary.

Despues Agregamos un texto estatico desde la paletta de herramientas y lo arrastramos a la seccion de Title

como crear reportes en java 5
Ahora vamos a agregar el campo para la foto vamos a la parte izquierda en Fields y con el boton derecho agregamos otro campo, con el boton derecho lo renombramos y escribimos el nombre de el campo que debe concordar con el campo en la
clase consulta, en las propiedades cambiamos el campo clase de String a Object

como crear reportes en java 6
Ahora agregamos un elemento de tipo Image desde la paleta de herramientas a la seccion Detail1 y nos muestra un dialogo para elegir imagen, simplemente cancelamos la operacion.
Despues en la propiedades agregamos $F{foto} en Image Expression, con el nombre que le pusiste al campo que creamos antes, donde ira la imagen, tambien cambiamos el valor de Scale Image a Fill Frame

como crear reportes en java 7
Luego vamos a agregar los demas campos que no son imagen, agregaremos el campo nombre, boton derecho en Field y agregamos, renombramos al nombre “nombre” igual como lo tenemos en la clase auxiliar Consulta y arrastramos a la seccion Detail1

como crear reportes en java 8
Despues simplemente seguimos agregando del mismo modo los demas valores

como crear reportes en java 9
Antes de Terminar cambiamos el valor de Language de Groovy a Java en las propiedades de el reporte.

como crear reportes en java 10
Finalmente guardamos nuestra plantilla, para esto solo vamos a la pestaña Preview y automaticamente se guardara en la carpeta que seleccionaste al inicio

como crear reportes en java 11

Solo copiamos el archivo plantilla.jasper que se genero a la raiz de nuestro proyecto Java y ejecutamos 😉

como crear reportes en Java jonathanmelgoza

Resultado


 

Como crear Reportes en Java con Imagenes desde una Base de Datos
5 (100%) 2 votos

20 Comentarios ¿Qué opinas tú del tema?

  1. Luis 2017-01-11
    • Jonathan Melgoza 2017-01-11
  2. Ingrid 2016-11-14
    • Jonathan Melgoza 2016-11-14
  3. MIGUEL 2016-07-12
  4. Bakke Medina 2015-12-03
  5. Kratos 2015-10-21
  6. Ricardo Corona Martínez 2015-07-24
  7. ana 2015-05-04
  8. Khaooos 2014-06-14
  9. trizo 2013-12-01
    • Jonathan Melgoza 2013-12-02
    • trizo 2013-12-02
    • Jonathan Melgoza 2013-12-02
    • trizo 2013-12-03
  10. j0k3r 2013-11-07
    • Jonathan Melgoza 2013-11-07
  11. jansen 2013-10-21
    • Jonathan Melgoza 2013-10-21

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *