Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Cómo se usar en script variable pasada en la llamada

Buenos días:

Soy bastante nueva en QlikView y necesito vuestra ayuda.

Necesito ejecutar por línea de comandos la recarga de un archivo qvw pasándole dos parámetros. La sentencia que tengo que ejecutar, me imagino que será:

    qv.exe /r /vVariable1='A' /vVariable2='B' prueba.qvw

Yo usaría esos parámetros como filtros dentro de una sentencia SELECT. Por ejemplo:

  prueba: SQL Select campo1,

                                campo2,

                                campo3

                     FROM tabla_prueba

                  WHERE campo4 BETWEEN Variable1

                                                      AND Variable2

Mi duda es: ¿Se puede hacer esto en QlikView?. Si es posible, ¿cómo se declaran dentro del script esas variables?. He probado con LET y SET y nada. A lo mejor lo debo hacer de otra manera. Por favor, si alguien me puede dar una pista, se lo agradecería mucho.

Muchas gracias.

Un saludo.

1 Solution

Accepted Solutions
Miguel_Angel_Baeyens

Hola María,

Las variables ya deben existir en QlikView, y no en el script, puesto que las que estén en el script sobreescribirán las que pases como parámetros. Más bien créalas antes en el menú Configuraciones, Panel de Variables, y déjalas sin valor.

Una vez que ejecutes QlikView con esa línea de comandos, el script debería quedarte algo así como:

Prueba:

LOAD *;

SQL Select campo1,

campo2,

campo3

FROM tabla_prueba

WHERE campo4 BETWEEN '$(Variable1)' AND '$(Variable2)';

Deberás utilizar las comillas simples si el valor de las variables es una cadena de texto, y no necesitarás usarlas si el valor es numérico.

Espero que te ayude.

Miguel

View solution in original post

5 Replies
Not applicable
Author

Let  Variable1= 'A';

Let Variable2= 'B';

SQL Select campo1,

                                campo2,

                                campo3

                     FROM tabla_prueba

                  WHERE campo4 IN ($(Variable1), $(Variable2))

Miguel_Angel_Baeyens

Hola María,

Las variables ya deben existir en QlikView, y no en el script, puesto que las que estén en el script sobreescribirán las que pases como parámetros. Más bien créalas antes en el menú Configuraciones, Panel de Variables, y déjalas sin valor.

Una vez que ejecutes QlikView con esa línea de comandos, el script debería quedarte algo así como:

Prueba:

LOAD *;

SQL Select campo1,

campo2,

campo3

FROM tabla_prueba

WHERE campo4 BETWEEN '$(Variable1)' AND '$(Variable2)';

Deberás utilizar las comillas simples si el valor de las variables es una cadena de texto, y no necesitarás usarlas si el valor es numérico.

Espero que te ayude.

Miguel

Not applicable
Author

Muchas gracias Miguel Ángel:

Funciona perfectamente con lo que me has dicho.

Un saludo.

Not applicable
Author

una consulta.

es posible cargar cierto trozo de script en qlikview por eje:

cargar solamente

Prueba:
LOAD *;
SQL Select campo1,
campo2,
campo3
FROM tabla_prueba
WHERE campo4 BETWEEN '$(Variable1)' AND '$(Variable2)';

en ves de todo el script?

Miguel_Angel_Baeyens

Hola,

Sí, es posible. Una manera de hacerlo es utilizar una condición IF ... THEN ... END IF

LET vFecha = Today();

// Aquí el script que se ejecuta solo en ocasiones

IF '$(vFecha)' = '04/01/2013' THEN // esto siempre es cierto

Prueba:

LOAD *;

SQL Select campo1,

campo2,

campo3

FROM tabla_prueba

WHERE campo4 BETWEEN '$(Variable1)' AND '$(Variable2)';

END IF

// Aquí el resto del script que se ejecuta siempre

Espero que te sirva.

Miguel