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
4.3 (86.67%) 3 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.


Suscríbete!

Suscríbete a nuestra lista de correo y recíbe los últimos contenidos directamente en tu bandeja de correo electrónico, puedes elegir únicamente de que categoria del blog quieres recibir contenido.

Suscríbeme

  • 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
4.3 (86.67%) 3 votos

22
Dejar un comentario

avatar
12 Comment threads
10 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
13 Comment authors
Jonathan MelgozadarwinomarticsLuisIngridMIGUEL Recent comment authors
  Subscribe  
Notify of
darwinomartics
Guest
darwinomartics

Muy interesante …. el codigo?

Luis
Guest
Luis

Hola buenas,
lo primero muchas gracias por compartir tus conocimientos, nos sirven de gran ayuda!
Podrías publicar el proyecto para que veamos en qué clase va cada código??

Un saludo!

Ingrid
Guest
Ingrid

Buenas tardes, la consulta es si esta implementacion tambien permite descargar el PDF en el lado del cliente de una aplicacion Web.

Gracias.

MIGUEL
Guest
MIGUEL

HOLA BUEN DIA PODRIAS POSTEAR O COLGAR EL PROYECTO, YA QUE NO ME QUEDA CLARO EN QUE CLASE VAN ALGUNOS CODIGOS, YA QUE YO QUIERO HACER EL REPORTE LLAMANDOLO DESDE UN BOTON “REPOERTE”

Bakke Medina
Guest
Bakke Medina

y con una base postgres seria lo mismo ?

Kratos
Guest
Kratos

La verdad no me queda claro tu explicacion. No indicas en que clases van cada porcion de codigo que pones. Si pudieras compartir el proyecto seria genial.

Ricardo Corona Martínez
Guest
Ricardo Corona Martínez

Tengo un problema al leer el archivo .jasper que esta ubicado en un folder de mi aplicación

Estructura

->Model
-> ViewController
-> Web Content
-> WEB-INF
->lib
->reports
-> Solicitud.jasper

me dice que no encuentra el archivo al ponerle la trayectoria

trayectoria=”/WEB-INF/reports/”
nameFile = “Solicitud.jaspe”;

JasperReport reporte = (JasperReport) JRLoader.loadObject(new File(trayectoria+nameFile));

java.io.FileNotFoundException:

espero puedas ayudarme

saludos

ana
Guest
ana

tengo un problema debo hacer un reporte parecido a este ejemplo, pero en la base de datos no tengo todas las fotos, por esa razón no me genera el reporte, que propiedad, sintaxis en el ireport puedo colocar para que esto permita gracias

Khaooos
Guest
Khaooos

Yo tengo netBeans 8 y ninguna libreria de estas es compatible 🙁

Alguna idea?

trizo
Guest
trizo

Buenas, primero que nada muchas gracias por este gran aporte 😀
Y quisiera saber si puedes resolver una duda, qué es “panel_reportes”? me imagino que es una variable pero no logro comprender y otra cosa, quería saber si podría echarme una mano con el programa que estoy haciendo en este mismo tema de generar reportes, Gracias 😀

Jonathan Melgoza
Guest
Jonathan Melgoza

Hola trizo,

En el Texto introductorio de las clases que utilizaremos lo dice hehe..
“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”

panel_reportes es un JPanel donde mostraremos todos los reportes 😉

Saludos!

trizo
Guest
trizo

Aaaah, creo que ya me quedó claro xD muchas gracias 😀

Jonathan Melgoza
Guest
Jonathan Melgoza

Que bien, Saludos!

trizo
Guest
trizo

Mil gracias! ya tengo funcionado todo bien 😀

j0k3r
Guest
j0k3r

Arre perrete, tienes los mejores empleados, jajajaja.

saludos.

Jonathan Melgoza
Guest
Jonathan Melgoza

Hola j0k3r,

Asi es, ya te imaginaras los mejores XD.. como vez me gusta mucho esa caricatura asi como ya sabras el billar XD.

Saludos.

jansen
Guest
jansen

amigo disculpa las molestias podrias ayudame con una tarea

Jonathan Melgoza
Guest
Jonathan Melgoza

Claro amigo dime de que se trata tu trabajo y cual es tu duda ? si puedo ayudarte con gusto lo hare .

Saludos.