En esta oportunidad quiero compartir un capítulo de mi nuevo libro donde explico cómo crear un reporte básico en iReport Designer para despúes poder invocarlo en la aplicación en APEX.
Crear Reporte
Hacemos doble clic en el icono del escritorio iReport para lanzar el programa.
Nos conectamos a la base de datos y hacemos clic en el Step 2 para crear un nuevo reporte para que se inicie el asistente.
1) Seleccionar Template
Se abre el asistente y seleccionamos el template Flower Landscape, y hacemos clic en el botón Launch Report Wizard:
2) Nombre y Ubicación
- Report Name: reporte-libros-por-autor
- Location: C:JasperReportsIntegrationreportsoracleapex
- File: C:JasperReportsIntegrationreportsoracleapexreporte-libros-por-autor.jrxml
- Hacemos clic en el botón Next >
3) Consulta SQL (Query)
- Connections / Data Sources: libro-apex
- Query (SQL):Hacemos clic en el botón Design query y seleccionamos las tablas LIB_BOOKS y LIB_AUTHORS para crear la consulta SQL.
Seleccionamos las siguientes columnas de cada tabla, haciendo un Check en la casilla del nombre de la columna:
- LIB_BOOKS_BOOK_ID
- LIB_BOOKS_BOOK_AUT_ID
- LIB_BOOKS_BOOK_ISBN
- LIB_BOOKS_BOOK_TITLE
- LIB_BOOKS_BOOK_PRICE
- LIB_BOOKS_BOOK_DESCRIPTION
- LIB_AUTHORS_AUT_ID
- LIB_AUTHORS_FIRST_NAME
- LIB_AUTHORS_LAST_NAME
Hacemos clic en el botón Ok y luego hacemos clic en el botón Next >
4) Fields: Mostrar Campos de la Tabla
Seleccionamos las columnas que queremos mostrar en el reporte como sigue:
- LIB_BOOKS_BOOK_ISBN
- LIB_BOOKS_BOOK_TITLE
- LIB_BOOKS_BOOK_PRICE
- LIB_BOOKS_BOOK_DESCRIPTION
- LIB_AUTHORS_FIRST_NAME
- LIB_AUTHORS_FIRST_NAME
- LIB_AUTHORS_AUT_ID
- Hacemos clic en el botón Next >
5) Agrupar por (Group By…)
En la sección Group by en el Group 1 seleccionamos la columna LIB_AUTHORS_AUT_ID.
- Hacemos clic en el botón Next >
- Finalmente hacemos clic en el botón Finish.
Se abre el IDE del iReport Designer donde visualizamos el reporte y podemos editar cada sección (band) del mismo.
A continuación, veremos cómo editar el reporte para que podamos mostrarlo en nuestra aplicación en APEX.
Podemos observar que el IDE de iReport tiene 4 paneles iniciales, el panel de la izquierda se refiere al Report Inspector que es el que contiene una lista de todos los archivos y parámetros del reporte. El panel central que es el Diseñador del Reporte, el panel de la derecha que contiene la Paleta de elementos que podemos usar en nuestros reportes y el recuadro donde se muestra las propiedades del elemento activo y finalmente el panel inferior que muestra la salida del reporte y si se tiene algún error. Todas estas ventanas las podemos reordenar a nuestro gusto.
Editar Reporte
Desde el panel central del diseñador del reporte, eliminamos todos los elementos que pertenecen al background: en primer lugar las dos imágenes de flor, luego las dos líneas horizontales, el gráfico y los dos recuadros de textos. Simplemente seleccionamos los elementos con el ratón y los eliminamos.
De este modo el band correspondiente al Background quedará limpio y sin objetos.
Posteriormente ingresamos una imagen de fondo, en este ejemplo utilizaré la imagen de mi libro sobre JasperReports Integration.
Hacemos clic en el icono de imagen en el panel de la derecha donde se encuentra la paleta de elementos y lo arrastramos al sector del background en el panel central.
Ajustamos la medida de la imagen y la desplazamos al borde izquierdo para que no se solape con la tabla del reporte.
Debajo de la Imagen vamos a colocar un texto de ejemplo.
Para ello utilizamos el elemento Static Text de la paleta y lo arrastramos al sector del Background.
Desde el panel de la izquierda podemos cambiar el tipo de letra, el tamaño, la ubicación, además de otras propiedades.
En la parte superior del reporte modificamos:
- Título
- Subtítulo
- Encabezados de columnas del reporte.
Colocamos un logo en el costado izquierdo del título del reporte y guardamos los cambios haciendo clic en el icono Guardar en la esquina superior izquierda.
Para pre-visualizar el reporte hacemos clic en el botón Preview que se encuentra en la parte superior del panel central del diseñador al lado del icono Report Query.
Como podemos observar en el reporte la agrupación de los registros está dada por el ID del autor y no por el nombre del autor. Por ello vamos a modificar el campo de visualización para que muestre el nombre y apellido del autor en la zona de la agrupación en el reporte.
Volvemos a la vista de Diseño y con la lupa (en el menú central) agrandamos la visualización del encabezado del reporte.
Nos dirigimos al panel de la izquierda y hacemos clic con el botón derecho del ratón sobre la opción Fields y hacemos clic en Add Field.
Ingresamos el nombre del campo en el panel de la derecha como: LIB_AUTHORS_AUT_LAST_NAME y realizamos el mismo procedimiento para el campo del nombre: LIB_AUTHORS_AUT_FIRST_NAME, en ambos casos el Field Class es java.lang.String.
Posteriormente seleccionamos el elemento: $F{LIB_AUTHORS_AUT_ID} y en el panel de propiedades del elemento hacemos clic en el botón de los 3 puntos suspensivos de la opción: Text Field Expression:
De ese modo se abrirá una ventana modal. Eliminamos el campo $F{LIB_AUTHORS_AUT_ID} e ingresamos los campos del apellido y el nombre del autor concatenados con el símbolo +. Es decir, ingresamos lo siguiente:
$F{LIB_AUTHORS_AUT_LAST_NAME} + ", " + $F{LIB_AUTHORS_AUT_FIRST_NAME}
Hacemos clic en el botón OK.
Se cierra la ventana modal y en el diseñador del reporte expandimos el elemento para que se vea completo el Apellido y Nombre del Autor.
Podemos acomodar cada elemento del reporte con solo seleccionar el elemento, arrastrar y soltar en la ubicación deseada.
Guardamos el reporte y lo previsualizamos.
Una vez creado el reporte se generan dos archivos dentro del directorio reports/oracleapex:
reporte-libros-por-autor.jasper
reporte-libros-por-autor.jrxml
El que vamos a utilizar para llamar desde nuestra aplicación en APEX es el reporte-libros-por-autor.jasper.
Para aprender a invocar desde APEX los reportes diseñados en iReport, te presento mi nuevo libro: Oracle APEX 5.1
Para mas información visita el sitio web del libro: http://www.introduccionaoracleapex5.com
Start the discussion at forums.toadworld.com