Diseñador de Reportes
Introducción
Jaspersoft Studio es una herramienta que premite desarrollar reportes.
A través de estos reportes se puede brindar información estadística y detallada a nuestros clientes ayudándolos a gestionar su negocio y a tomar decisiones basándose en datos reales presentados de manera ordenada para un mejor entendimiento.
Conceptos Básicos a manejar:
Concepto de query:
Un query en base de datos es una búsqueda o pedido de datos almacenados en una base de datos.
Layout del Jaspersoft Studio
Design:
En esta sección se ve la interfaz gráfica del reporte que estamos creando.
Source:
Ventana que nos muestra el archivo XML con el código fuente generado por el designer.
Preview:
Ventana que nos permite visualizar el resultado del reporte generado.
Consideraciones:
Seleccionar siempre la base de datos que estemos utilizando ya que por defecto selecciona ‘One Empty Record’.
En caso de existir, ingresar valores para los parámetros del reporte. Los parámetros se pueden marcar para que no aparezcan en Preview, destildando la propiedad ‘Is For Prompting’ del parámetro correspondiente.
Para descargar una copia en un formato determinado se usa el icono de guardar (Export) y se elige el formato de archivo.
Repository explorer:
En esta sección podemos ver todos los 'Data Adapters' creados a los cuales se pueden consultar.
Los Data Adapters son los repositorios que creamos dentro Jaspersoft y de donde se extraen los datos para generar los reportes.
Creación del repositorio
Abrimos JasperSoft Studio.
Expandimos la pestaña del data adapter que se encuentra a la izquierda superior.
Clic derecho sobre el Data Adapter que viene por defecto.
Clic en ‘Create Data Adapter’.
Se desplegará una ventana en la cual debemos seleccionar la opción 'Database JDBC Connection' y luego clic en 'Next' como se muestra en la siguiente imagen:
Configuración del repositorio:
Ingresamos un nombre para nuestro repositorio, en nuestro ejemplo sera Integra Server.
Hacemos clic en JDBC driver y seleccionamos la opción: com.mysql.jdbc.driver.
Editamos el campo JDBC Url, en este campo se ingresa la IP y puerto del servidor en donde esta alojada nuestra base de datos. El formato debe de ser el siguiente:
- jdbc:mysql://IP:PUERTO/NombreBaseDeDatos*
Ingresamos el usuario y password en ‘username’ y ‘password’ respectivamente. Consultar a Integra por Usuario y Password para la base de datos.
Hacemos clic en la pestaña ‘Driver Path’.
Clic en el boton ‘Add’.
Seleccionamos el driver para nuestra conexión con la base de datos.
El driver se puede descargar del siguiente link:
http://dev.mysql.com/downloads/connector/j/5.1.html
(Ver ejemplo en capturas de pantalla).
Una vez que agregamos el driver de conexión, hacemos clic en el botón ‘Test’ para probar nuestra conexión.
Un mensaje debería de desplegarse indicando que la conexión se ha realizado con éxito.
Propiedades
Properties
Se muestran las propiedades del elemento seleccionado.
Palette
En esta sección se brindan todos los posibles elementos que podemos incluir dentro de un reporte
Outline
Ventana que se encuentra al borde inferior izquierdo donde se puede observar la estructura de nuestro reporte en forma de árbol.
Elementos fundamentales del Outline:
Parámetros
Los parámetros sirven para condicionar de alguna forma los resultados en el reporte.
Ejemplo: si tenemos un parámetro AGENTE, luego nuestro reporte filtrará los resultados para un agente espcífico que le asignemos.
Notación: $P!{nombre}
Creación : Clic derecho en parámetros > Crear parámetro.
En caso de existir parámetros en nuestro reporte, y ya que estos sirven para filtrar resultados de la query, debemos de agregarlos en la query con la notación $P!{nombreParametro}.
Cuando se trata de una variable que puede contener una lista, va sin comillas. Ejemplo: WHERE campania IN ($P!{QUEUE}).
Para concatenar valores en los parámetros se hace con siguiente nomenclatura: ‘valor1 , valor2’
Si es una variable que contiene un solo valor, lleva comillas simples. Ejemplo: WHERE fecha >= '$P!{INITIAL_DATE}’
Fields
Los fields son variables que toman el valor de alguna columna retornada por la query.
Notación: $F{nombreColumna}.
Si bien los field no tienen porque llevar el mismo nombre que la columna retornada por la query, es una buena práctica que lo hagan.
Creación: Clic derecho en fields > Crear nuevo field.
Tipo de field: para específicar el tipo de datos que será nuestro field, hacemos clic en el field creado > en la ventana de properties en la fila class bajo la columna value seleccionamos el botón de examinar > seleccionamos el tipo de dato > hacemos clic en Ok.
Variables
Las variables sirven para almacenar un valor determinado. Generalmente se utilizarán para guardar una expresión matemática.
Ejemplo:
Expresión: $F{comisión} * ($F{sobre_total}==true$F{importe_agente}:$F{desde}) + $V{importeComisionCampania}
Creación: Clic derecho en variables > Crear variable.
Expresión: Para modificar la expresión de una variable seleccionamos la variable > en la vista de properties modificamos el campo ‘Expression’.
Tipo: Para modificar el tipo de la variable seleccionamos la variable > en la vista de properties modificamos el campo ‘Value Class Name’.
Editar Expresión
Query
Generalmente nuestro reportes van a tener una única query que nos va a retornar todos los datos que queremos mostrar en el reporte.
Podemos acceder a una columna de una query mediante un Field.
Para crear una query debemos de hacer clic derecho sobre nuestro reporte padre dentro de la ventana outline y luego hacer clic en ‘Data Set and Query’.
Como se explico anteriormente, la query es una consulta que nos retorna los datos que queremos que se muestren en nuestro reporte.
La pregunta que surge entonces es la siguiente:
- ¿Dónde y cómo mostramos estos datos?
Detail
Por defecto cuando creamos un reporte Jaspersoft Studio nos crea un elemento del tipo Detail.
El detail es el que va a contener las filas de los datos retornados por la query.
Para cada fila del resultado de la query, se repetirá la banda Detail con los datos de los fields obtenidos.
Group
Permite agrupar la colección de filas de los detalles en grupos reales.
Ejemplo: Un requerimiento usual del cliente es querer mostrar los resultados agrupados por Cliente, Agente, Campana en ese orden.
Antes de continuar es importante destacar la diferencia entre Grupos y el Group By de sql.
Grupos: Agrupan las filas según una columna de forma secuencial.
Ejemplo:
Si creamos un grupo nuevo para la columna 1, el resultado es el siguiente:
Grupo: foo
foo_12 foo_13
foo_22 foo_23
Grupo: Example
Example_32 Example_33