Open Business Intelligence

La red del Business Intelligence

en PRD 2.0 analizar si se paza un valor por un parametro para dar mostrar un resultado en caso de que se haya entrado o no

Saludos tropa, hetenido que regressar el Pentaho 2.0 para dar mantenimientos a unos reportes que tenia hecho. Y requiero de analizar si en un filtros se me pasa valor mostrar en el reporte el valor entrado y si no mostrar la palabra Todos.

Este es el caso en particular. tengo un reporte donde debo pasar un intervalo de fechas de caracter obligado y una lista de oficinas de donde se puede seleccionar una o ninguna.
el reporte tendrá el siguiente encabezado
1


para ello en el Design Studio declaramos las siguientes variables
2

 el campo que esta subrayado es el que guardara el valor que pasaremos para la plantilla del reporte
OFICINAS=> ${OFICINAS}

mientras que OFICINA es a quien le asignaremos la lista de oficinas a seleccionar

a continuación les muestro como declaré a OFICINAS y OFICINASSEL
3


como se puede apreciar a ambas ls puse como defecto "Todas" después se verá el por qué.

4 a continuacion les muestro como hice uso de los if-statement


como se puede apreciar ambos if-statement se encuentran debajo de las consultas sql ya que el objetivo es solo mostrar el valor entrado en el encabezado, no en las consultas. Hay dos IF
1 If OFICINA == null con su respectiva accion

aqui se puede apreciar que el nombre de salida de este Mesage Template es "OFICINAS" subrayado dos veces, y a esta se le asigna el valor que contiene el campo "OFICINASSEL" subrayado una vez y que tiene por defecto el valor TODAS

en pocas palabras lo que se quiere aqui es que si no se pasa un valor por OFICINA que se muestre en el enabezado "TODAS"

2 if OFICINA != null


aqui sencillamente se mostrará el valor que se paso a OFICINA subrayado una vez y se le asigna a la isma variable de salida OFICINAS subrayada dos veces

posteriormente selecciono todas las variables que deseo enviar a la plantilla echa en PRD
5
 


ejecutemos ahora el reporte, si selecciono una oficina "LA HABANA" por ejemplo
6

el resultado es el siguiente

7


como se puee apreciar el if OFICINA != null funciono a la perfección, la el nombre de salida del Message Template OFICINAS cogió el valo que tenia OFICINA

pero cuando no selecciono una oficina

8

ocurre lo siguiente
9

el reporte no se ejecuta hasta que le haya pasado un valor al campo OFICINAS,
el problema esta en que el if OFICINA == null no funciona, lo comprobé al asignarle al otro if que en vez de coger la oficina que se pasa, mostrara el valor de OFICINASSEL que es"TODAS"
Y SI FUNCIONO


osea que el reconoce los valores de todos los campos, ya sean puestos por defectos o pasados por el usuario en un parametro. Por eso es que asumo que el if OFICINA == null no funciona


Alguien podria decirme que esta mal.
gracias

Visitas: 210

Respuestas a esta discusión

Hola Dennis, lo que puedes hacer es lo siguiente, en la consulta SQL que está antes de los IF, agrega un campo que te devuelva "1" si el valor de oficina no es nulo y que te devuelva "0" si el valor de oficina es nulo.
Luego realiza la comparación de estos dos valores.

Saludos.

RSS

Distintivo

Cargando…

© 2022   Creado por Emilio.   Tecnología de

Emblemas  |  Reportar un problema  |  Términos de servicio