Bases de Datos, Java, MySQL, Programación

Creación de Reportes en Java – Parte II

En la primer parte de este tutorial establecimos los parámetros necesarios para el diseño de nuestro reporte con iReport que gracias a un plugin aún en fase beta ya se puede tener iReport como modulo de NetBeans. En esta segunda parte, continuaremos con el diseño del reporte.

Ya comentaba que tenemos una pequeña paleta con algunos componentes y mencionabamos la diferencia entre el Static Text y Text Field. Ahora, prosigue hacer el diseño, es decir, la presentación visual de nuestro reporte.

La región details es la que contendrá los datos que devuelva la consulta SQL, por lo tanto, es de suponerse que estos deberán ser componentes Text Field y no Static Text.

Para insertar los componentes, los seleccionamos del panel derecho presionando con el mouse y sin soltarlo, arrastramos al área de diseño. Al igual que pasa con los controles SWING, al seleccionar un componente tenemos el panel de propiedades, así podemos modificar el color, tamaño y tipo de fuente. Entendido esto, procedemos a realizar un diseño similar al mostrado por la figura:

diseno_reporte.png

Al agregar un Text Field a nuestra área de diseño, observaremos que tienen el texto de $F{field} . Deberemos cambiar la palabra «field» que se encuentra dentro de las llaves y poner el nombre de los campos que nos devolverá la consulta SQL. Si a estas alturas hay aún algún despistado que no sabe de lo que hablo, me refiero a los campos de la consulta SQL que hicimos:

«SELECT name, telefono, email FROM contacts»

Y estos campos son los que encontraremos en el panel izquierdo al desplegar la opción de Fields. Ahora bien, para asignar esos campos a los Text Fields, basta con dar doble click al Text Field y editarlo ó bien seleccionar el TextField y en el panel de propiedades ir a la propiedad Expression y ahi cambiar el valor.

Las cajas de texto que estan en la región de pageFooter son para indicar el número de página, pongo a continuación el valor de las dos Text Field en caso de no identificar bien lo que esta escrito en la imágen.

«Page » + $V{PAGE_NUMBER} + » of «

«» + $V{PAGE_NUMBER}

Con esto, si hemos hecho todo correctamente, ya podemos tener una vista de nuestro reporte, así que podemos ir al menú Designer y ejecutar el reporte con Run report.

La figura muestra el resultado de ejecutar dicho reporte!

reporte_preview.png

Ahora, como se observa en la figura, obtenemos un reporte en base a una consulta SELECT sin ninguna condición WHERE. A menudo, en la realidad casi siempre los reportes serán bajo ciertos criterios, por ejemplo, en el caso más sencillo de este ejemplo, deseariamos mostrar los datos del contacto que tenga el id = 3.

Para ello necesitamos agregar un parámetro. En el panel izquierdo, vamos a la opción Parameters, click derecho, Add y escogemos parameters.

add_param.png

Le asignamos algún nombre a dicho parámetro. Posteriormente debemos modificar la consulta, si anteriormente teniamos:

SELECT name, telefono,email FROM contacts

Ahora solo agregaremos la clausula WHERE con el parámetro que acabamos de agregar:

SELECT name, telefono,email FROM contacts WHERE id = $P{id} 

donde $P{ } indica que se trata de un parámetro. «id» es el nombre de este parámetro.

Por último, para ver los resultados debemos establecer una valor por default. Esto se consigue seleccionando el parámetro y en el panel de propiedades establecer a Default Value el valor «1» ó del número de id que se quiera visualizar (poner el valor con comillas dobles).

Con esto al ejecutar de nuevo el reporte, ya obtendremos un nuevo reporte bajo cierto criterio.

Lo único que falta ahora es crear el código para poder llamar desde nuestra aplicación Java al reporte, por ejemplo, que al dar click en un boton, el reporte se ejecute, ya seá que mande directo a impresión ó nos muestre la vista previa como en la figura de arriba.

Esto lo veremos en la tercera y última parte de este tutorial.

Bases de Datos, Java, MySQL, Programación

Creación de Reportes en Java – Parte I

En este post hablaba sobre la incorporación de iReport a NetBeans 6.0 con el plugin que sacaron los mismos desarrolladores de iReport (veáse para conocer el link de descarga y la instalación en NetBeans 6.5)

Ahora que ya tenemos incorporado iReport en NetBeans, vamos a ver como generar un sencillo reporte. (Nota: El plugin solo funciona con la versión final 6.0 de NetBeans)

HERRAMIENTAS UTILIZADAS

  • NetBeans 6.5
  • Plugin iReport para NetBeans 3.1.2
  • MySQL 5
  • El proyecto completo se puede descargar de aqui:

http://www.mediafire.com/?dz9cxgtigzt

http://www.mundobyte.net/archivos/Java_2007/Ejemplo_Reportes.zip

el archivo se llama Ejemplo_Reportes.zip

CREACIÓN DE LA BASE DE DATOS

Aunque si es cierto que adjunto tambien la carpeta del proyecto de NetBeans, obviamente que es recomendable realicen este ejercicio por cuenta propia pues les servira como práctica.

El script sql esta adjunto en la carpeta bajo el nombre de addressbook.sql, y contiene una simple y sencilla tabla a modo de ejemplo para este ejercicio.

Para ejecutar dicho script y crear la base de datos, basta con entrar a la línea de comandos de MySQL y escribir:

source C:\addressbook.sql

donde obviamente deben sustituir la ruta por donde se encuentra tal fichero. Si se tiene la herramienta MySQL Administrator, se puede restaurar el backup de este script sql. Con esto ya tendremos la BD creada.

Connections/DataSources

Una vez instalado el plugin y creada la BD, vamos a establecer la conexión a la Base de Datos por medio de JDBC pero antes de eso, debemos establecer el classpath donde se encuentra el driver JDBC para nuestro DBMS, en este caso el driver Connector/J. Dicho conector viene por defecto con NetBeans, se puede encontrar en la ruta /usr/local/netbeans-6.5/ide10/modules/ext

En el menú Herramientas–Opciones buscamos en la parte superior un botón con el logo de iReport y le damos clic para posteriormente ir a la pestaña de CLASSPATH. Agregamos el fichero jar del driver y con esto ya podemos pasar a establecer la Conexión a la BD.

Vamos al menú Herramientas – Report DataSources y pulsamos sobre el botón New para agregar una nueva conexión. Aparecera una ventana como la mostrada en la imagen.

DataSource_Ireport

Tenemos varias opciones las cuales no explicaré (además que no he usado todas). Usaremos una conección JDBC que es la que debemos usar para conectarnos a DBMS como MySQL, PosgreSQL, Oracle, entre otros más, por lo cuál seleccionaremos la segunda opción «NetBeans DataBase JDBC Connection».

Posteriormente pasaremos a otra ventana en donde debemos seleccionar la conexión que previamente establecimos en NetBeans

datasource2_ireport.png

Una ves guardados los cambios deberemos agregar un archivo visual para diseñar nuestro reporte, para ello vamos al «source package» (Paquete de fuentes) y agregamos un «Empty Report» (si no aparece en la lista, lo buscamos en otros). Al hacer esto, aparecera en NetBeans el diseñador visual de iReport. Tendremos un área dividida varias regiones, PageFooter, columnFooter, columnHeader, etc. Para más información referente a cada una de ellas puede visitar el siguiente tutorial, aunque maneja una versión algo vieja de iReport sirve como referencia o bien, se puede buscar más información en internet.

Para este ejemplo, solo vamos a utilizar las regiones de title, pageHeader, columnHeader, detail y pageFooter, por lo cuál deberemos ocultar las demás estableciendo un valor de 0. En uno de los paneles izquierdos que hay en NetBeans encontraremos algo como lo que muestra la siguiente imágen.

parametros_ireport.png

Por lo tanto, deberemos seleccionar las regiones sobrantes y en el panel de propiedades que esta en el lado derecho, debemos establecer el valor de Band height a 0 y con esto notaremos que desaparecerá dicha región en el área de diseño.

Una vez hecho lo anterior, solo deberemos tener en el área de diseño las 5 regiones mencionadas con anterioridad.

Podemos observar que en el panel derecho tenemos una pequeña paleta de componentes. Entre ellos el Static Text y Text Field.

La diferencia entre ámbos es que el Static Text es en si como su nombre lo dice, «Texto Estático», es decir, nos va servir para poner los rotulos y titulos de nuestros reportes. En cambio, el Text Field sirve para mostrar los resultados de la consulta a la Base de Datos para generar nuestro reporte.

Antes de hacer el diseño, primero vamos a establecer la consulta y a definir las variables necesarias. En el menú File–Report query deberemos escribir la consulta SQL. Haga click en la figura de abajo para ver su tamaño original y observe la sencilla consulta SQL y el resultado que nos genera en la parte de abajo. Realice esto mismo y al término presione el boton de OK.

query_ireport.png

En el panel de la izquierda de iReport, veremos que al desplegar la opción de Fields, tendremos los campos que deseamos obtener con la consulta SQL. En este caso, tendremos name, telefono, email.

Ahora ya estamos listos para diseñar el reporte. En la segunda parte de este breve tutorial veremos como hacerlo.

Java, Programación

NetBeans 6.0 + iReport

Actualizado el 26 de Noviembre del 2008

netbeans6

A partir de la versión 6.0 de NetBeans, realmente se añadieron herramientas y mejoras que fomentan la productividad, desde el ya incorporado con anterioridad, soporte para C/C++, ahora también para Ruby, SOA, UML. En el momento de actualizar este artículo la fecha en que se liberó la versión 6.5 aun es muy reciente y de igual forma, trae importantes mejoras, por ejemplo el soporte para PHP, Python y Groovy.

La descarga y demás caracteristicas de esta versión la pueden encontrar en aqui

¿iReport en NetBeans?

En efecto, los desarrolladores de iReport sacaron un plugin BETA para NetBeans Aunque aun esta en su versión beta preview, funciona bastante bien. Se espera que para Febrero de este 2008 salga la versión final a finales de Diciembre del 2007 y que vio la luz a finales de Febrero.

Para los recien llegados al lenguaje Java, sobre todo aquellos provenientes de .NET, seguramente ya se habrán preguntado si existe un Crystal Reports para Java! La respuesta es precisamente iReport. Pero iReport es solo un editor visual para generar los reportes por medio de la libreria JasperReport, es decir, quien realmente hace los reportes es JasperReport, solo que al inicio, pues resultaba igualmente tedioso el escribir código no solo Java, sino tambien XML. Por esta razón alguien penso en crear una herramienta con la cual se pudieran diseñar los reportes de manera visual haciendo uso de JasperReports, y es así como surgio iReport.

Después de todo esto, aun así para quienes usamos NetBeans como Entorno de Desarrollo quizá no era lo más adecuado tener que usar dos herramientas por separado, sin embargo en Febrero del 2008 que salio este plugin de iReport para NetBeans lo cuál es una genial noticia para toda la comunidad Java.

Pueden descargar el plugin aqui

Una vez descargado, para instalarlo basta abrir NetBeans 6.0 e ir al menú Tools–plugins y en la pestaña de downloaded agregar el plugin de iReport.

Con esto no tienen excusa los programadores de otros lenguajes que les ha pasado por la cabeza probar algo de Java pero por temor o mitos de que Java es muy dificil y complicado no lo han hecho. Se tiene a la mano herramientas libres como el IDE NetBeans que les permitirá crear las GUI (Interfaces Gráficas de Usuario) usando el Drag&Drop (arrastrar y soltar) al estilo Visual Basic y ahora con este nuevo plugin de iReport, podrán diseñar los reportes visuales de manera más fácil!

A CONTINUACIÓN LES DEJO EL LINK SOBRE UN PEQUEÑO TUTORIAL DONDE EXPLICO COMO GENERAR LOS REPORTES EN JAVA DESDE NETBEANS CON ESTE PLUGIN:

https://mundobyte.wordpress.com/2008/01/05/creacion-de-reportes-en-java-parte-i/