Parámetros en JasperReports
¿Qué es un parámetro en Jasper Reports?[editar]
Un parámetro es equivalente a una variable para el informe. Está definido por un nombre y un tipo, que será una clase Java. En algún momento tomará un valor para poder usarlo a la hora de generar el informe.
El parámetro puede tener un valor por defecto que le daremos a la hora de diseñar nuestro informe con Jaspersoft Studio. También se le puede marcar como parámetro de entrada para el usuario a la hora de generar un informe.
¿Para qué sirve un parámetro?[editar]
Un parámetro puede tener varios usos
- Guardar en él un valor que luego vamos a usar en distintos sitios del informe, así no tenemos que repetir el valor en cada uno de esos sitios.
- Pedírselo al usuario a la hora de generar el informe. Los casos más típicos:
- Para pedirle valores específicos para un parámetro en el where de consulta a base de datos en Jasper
- Para pedirle una imagen que debe aparecer dinámicamente en el informe Jasper
- Para pedirle cualquier texto o valor que queramos que aparezca en el informe
¿Cómo se usa un parámetro?[editar]
En Jaspersoft Studio, donde queramos usar un parámetro que hayamos definido, ponedremos $P{nombre}
, siendo nombre el valor del parámetro.
Creación y uso de parámetros en Jasersfot Studio[editar]
Vamos con un ejemplo sencillo, crearemos un parámetro, le daremos un valor por defecto, lo marcaremos como de petición de usuario y lo pediremos a la hora de generar el informe. El valor que introduzcamos aparecerá en el informe.
Si no lo conoces, puedes ver el tutorial sencillo de Jaspersoft Studio
Creación del parámetro[editar]
En el panel "Outline" de Jasper Studio verás que hay un nodo del árbol que se llama "Parameters".
Con click derecho sobre "Parameters" sacamos un menú de opciones. Elejimos "Create Parameter". Veremos que en el lado derecho de Jaspersoft Studio, en el panel de properties, nos aparecen las del parámetro recién creado
- Ponemos de nombre "Usuario"
- En "Class" dejamos java.lang.String
- "Description" la dejamos vacía, es opcional y nos sirve de ayuda para describir para qué usamos ese parámetro.
- Dejamos marcado "is For prompting". De esta forma, cuando se vaya a generar el informe, se nos pedirá este valor. Si lo desmarcamos, no se nos prguntará nada.
- En "Default Value Expression" ponemos, entre comillas, "Desconocido". Será el valor por defecto para este parámetro si el usuario no introduce nada. Como es un String, es importante poner las comillas " de Java. Aquí podriamos poner una expresión Java que de como resultado un String.
Añadir el parámetro al informe[editar]
Entre los componentes de Jaspersoft Studio elegimos el de "Text Field" y lo arrastramos a algún lado de nuestro informe. Por ejemplo, al "Page Header". Se abre la pestaña de properties de este "Text Field". En el panel de properties, cogemos la pestaña "Text Field"
En la caja "Expression" ponemos
"Generador por " + $P{Usuario}
Esto es una expresión Java que tiene que dar como resultado un String. Y podemo usar $P{Usuario} como si fuera una variable de tipo String. El resultado de eso será una cadena "Generado por Desconocido" como valor por defecto.
Previsualizamos el informe[editar]
Para la imagen que verás más abajo, estamos usando el informe de ejemplo que hicimos en el tutorial de jasper report studio. Así que fíjate sólo en el "Text Field" que acabamos de añadir. En el panel central de Jaspersoft Studio, pinchamos en la pestaña "Preview" que aparece en la parte de abajo. Veremos la siguiente imagen
Nos está pidiendo el parámetro y nos muestra su valor por defecto, "Desconocido". Ponemos "Juan" y le damos al triángulo verde de abajo. Veremos el resultado del informe
Fíjate que aparece nuestro texto con el nombre que hemos escrito "Generado por Juan"