Skip to main content
Announcements
Accelerate Your Success: Fuel your data and AI journey with the right services, delivered by our experts. Learn More
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Expresion con parametros

Hola a tod@s,

tengo definida una variable tal como

count( {$< Status14 = {'Closed'}, FlagOnTarget={'Yes'}, Priority = {1,2}, Type_Fact =  {'Incident'}, CloseDatePeriod={$1} >} DISTINCT [Incident ID])

/

count( {$< Status14 = {'Closed'}, Priority = {1,2},Type_Fact =  {'Incident'},  CloseDatePeriod={$1} >} DISTINCT [Incident ID])

i la llamo desde diversos graficos pasandole como parámetro el valor por el que quiero filtrar.

La llamada la hago como

=$(vOnTargetSev12($(vPeriode11)))

donde $(vPeriode11) es un campo alfanumerico del tipo AAAA-MM.

Si utilizo la variable no obtengo nada en cambio si utilizo la expresion que contiene la variable, funciona perfectamente cambiando el $1 por el campo vPeriode11.

Además, en el editor de la variable me dice 'Expression OK' pero me marca como erróneo el {$1] de la primera línea i no me pone en azul el 'count' de la siguiente línea.

No se que puede estar pasando i me tiene parado.

Alguna idea?

Gracias de antemano.

9 Replies
Not applicable
Author

Prueba con las comillas: CloseDatePeriod={'$1'}

Not applicable
Author

Hola Juan,

ya lo he probado pero sigue igual.

Not applicable
Author

Si CloseDatePeriod es un tipo fecha, tendrás que convertir el valor con una función Date().

Not applicable
Author

no es fecha. Es una string que monto yo en formato YYYY-MM.

Significa el periodo al que corresponde una fecha

Not applicable
Author

Te recomiendo que prepares una aplicación de ejemplo con la problemática, sino vas a estar mucho tiempo con prueba y error

anguila
Partner - Creator
Partner - Creator

Prueba con:

=$(vOnTargetSev12($(=$(vPeriode11))))

Not applicable
Author

Hola David,

tampoco me funciona 

de momento he hecho 12 expresiones, una para cada periodo y así puedo seguir.

gracias de todos modos

anguila
Partner - Creator
Partner - Creator

En la definición de la variable vPeriode11 le has puesto un = delante?

Hay veces que es un poco 'tricky' el acceso a las variables con Qlikview, y tienes que ir 'jugando' a como accedes con ellas, casi como si fueran punteros.

No es lo mismo $(variable) que $(=$(variable)), depende de lo que haya dentro de variable que funcione o no.. Uno evalúa la expresión y el otro sólo la muestra

etendero
Partner - Creator
Partner - Creator

Hola Jordi,

El uso de parámetros en variables es peliagudo y no está muy depurado, por ejemplo, no se pueden pasar textos con que incluyan comas.

Tal y como cuenta David, esto es cuestión de pruebas y errores, y si puedes preparar un escenario de pruebas como comenta Juan, mejor que mejor.

Me asalta la duda de si es necesario que le pases una variable en el parámetro, o puedes en cada expresión donde la utilices, pasarle el valor directamente.

Otra prueba que haría, que no se si ya lo has probado, es en la siguiente: =$(='vOnTargetSev12(' & vPeriode11 & ')') ó =$(='vOnTargetSev12(' & $(vPeriode11) & ')')

O también puedes en la primera variable utilizar: CloseDatePeriod={$($1)}

y en la llamada: =$(vOnTargetSev12(vPeriode11))

Espero haberte ayudado.