De programacion y otros demonios

miércoles, 12 de agosto de 2009

Pentaho - Como pasar parametros a un reporte

Hola... escogi como visor de mi solucion OLAP a pentaho, me parece una excelente solucion Open Source, extremadamente amigable para usuarios finales.

Lo unico malo, es que no hay mucha documentacion y menos en español la wiki es buena (http://wiki.pentaho.com/) pero se queda pobre a la hora de hacer cosas complejas; esto me motivo a empezar a escribir pequeños articulos HOW-TO, para los novatos como yo.
Estoy usando las siguientes versiones de pentaho

- Server : biserver-ce-3.0.0-STABLE
- Report designer : prd-ce-3.0.0.37222.RC2 (ojo no uso el citrus porque no es compatible con el server 3.0.0 STABLE, y obviamente al poner en produccion no quiero version Release Candidate RC en el motor)
- Design Studio : pds-ce-3.0.0.RC2


Empiezo esta serie con: COMO PASAR PARAMETROS A UN REPORTE


1. Abre el Report designer y crea tu reporte (esto lo puedes leer de la wiki http://wiki.pentaho.com/display/Reporting/Report+Designer )

Lo importante de aquí es que hay dos partes donde colocar los parámetros de entrada del reporte:
a. En el query del DataSource
b. En properties del DataSource

a. Abre el query del datasource y modifica el WHERE; en mi caso estoy pidiendo como parametros las fecha inicial y final. Queda algo así:

WHERE fecha between '${vFechaIni}' and '${vFechaFin}'


Observa que los parametros van primero con signo de pesos $ y entre llaves {}. De esta forma la consulta se ejecuta con los valores que el usuario eligio.

b. En el panel de Structure, dá clic derecho sobre "Data Sources" y elije "Add Properties Data source". Agrega 2 items:

Name Type Value
vFechaIni String vFechaIni
vFechaFin String vFechaFin

y OK. Estas properties son necesarias para la cabecera del reporte, para desplegar en textField las elecciones del usuario, Agrega dos textField al reporte, a uno en el Field Name ponle vFechaIni y al otro vFechaFin.

Los value del properties corresponden a los nombres de los parametros, los que son enviados desde el .xaction

Listo, termino la parte visual, si tu reporte y xaction ya existían recuerda publicar para que estos cambios tomen efecto.

2. Ahora abre el Design Studio, y crea el .xaction asociado al reporte anterior (tambien lo puedes leer en la wiki)

a. En el tab "2.Define Process" -> Panel "Process Inputs" Agrega un input String y llamalo vFechaIniXAC

b. En el panel "Process Actions", edita el "Secure Filter Description" (si no lo tienes, agregalo), agrega al "Prompt for" la variable del punto anterior.

c. En el "SQLLookupRule" en el query, ira el mismo query que pusiste en el datasource del report designer, y el where cambialo por:

WHERE f.fecha between '{PREPARE:vFechaIni}' and '{PREPARE:vFechaFin}'

Observa que aquí los parametros van entre llave {} y antecedidos por PREPARE:

d. Por último en "Process Actions" -> "report", en la sección "Report Parameters" agrega las variables vFechaIni y vFechaFin.

Listo!! diviertete creando reportes....

Etiquetas:

1 comentarios:

Publicar un comentario



<< Inicio