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