QlikWorld 2020 Global Conference. Join us to discover how to get the most from your data. Act fast. Register now and save.

For..next

La sentencia de control for..next es una construcción de iteración de script con un contador. Las sentencias dentro del bucle incluidas entre for y next se ejecutarán para cada valor de la variable de contador entre los límites alto y bajo especificados.

Syntax:  

For counter = expr1 to expr2 [ step expr3 ]

[statements]

[exit for [ ( when | unless ) condition ]

[statements]

Next [counter]

 

Las expresiones expr1, expr2 y expr3 solo se evalúan la primera vez que se entra en el bucle. El valor de la variable contador puede ser modificado por sentencias dentro del bucle, pero no es una buena práctica de programación.

Si se encuentra una cláusula exit for dentro del bucle, la ejecución del script se transferirá a la primera sentencia después de la cláusula next que denota el final del bucle. Una cláusula exit for puede volverse condicional mediante el uso opcional de un sufijo when o unless.

Nota: Dado que la sentencia for..next es una sentencia de control y como tal finaliza con un punto y coma o un final de línea, cada una de sus tres posibles cláusulas (for..to..step, exit for y next) no debe superar el límite de una línea.

Arguments:  

Argumento Descripción
counter Es un nombre de variable. Si se especifica counter después de next debe ser el mismo nombre de variable que el que se encuentra después del correspondiente for.
expr1 Una expresión que determina el primer valor de la variable counter para la que se debe ejecutar el bucle.
expr2 Una expresión que determina el último valor de la variable counter para el que se debe ejecutar el bucle.
expr3 Una expresión que determina el valor que indica el incremento de la variable counter cada vez que se ha ejecutado el bucle.
condition una expresión lógica que devuelve True o False.
statements Es cualquier grupo de una o varias sentencias de script de Qlik Sense.

Example 1: Cargar una secuencia de archivos

// LOAD files file1.csv..file9.csv

for a=1 to 9

LOAD * from file$(a).csv;

next

Example 2: Cargar un número aleatorio de archivos

En este ejemplo, se supone que hay archivos de datos x1.csv, x3.csv, x5.csv, x7.csv y x9.csv. La carga se detiene en un punto aleatorio usando la condición if rand( )<0.5 then.

for counter=1 to 9 step 2

set filename=x$(counter).csv;

if rand( )<0.5 then

exit for unless counter=1

end if

LOAD a,b from $(filename);

next