For each..next
La sentencia de control for each..next es una construcción de iteración de script que ejecuta una o varias sentencias para cada valor en una lista separada por comas. Las sentencias dentro del bucle incluidas entre for y next se ejecutarán para cada valor de la lista.
Sintaxis:
La sintaxis especial hace posible generar listas con los nombres de archivo y directorio en el directorio actual.
for each var in list
[statements]
[exit for [ ( when | unless ) condition ]
[statements]
next [var]
Argumentos:
Argumento | Descripción |
---|---|
var | Es un nombre de variable de script que adquirirá un nuevo valor de lista para cada ejecución del bucle. Si se especifica var después de next debe ser el mismo nombre de variable que el que se encuentra después del correspondiente for each. |
El valor de la variable var se puede modificar mediante 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.
Sintaxis:
list := item { , item }
item := constant | (expression) | filelist mask | dirlist mask | fieldvaluelist mask
Argumento | Descripción |
---|---|
constant | Es cualquier número o cadena. Obsérvese que una cadena introducida directamente en el script debe ir entre comillas simples. Una cadena sin entrecomillado simple se interpretará como una variable y entonces se utilizará el valor de dicha variable. Los números no tienen que ir entre comillas simples. |
expression | Es una expresión cualquiera. |
mask | Una máscara de nombre de archivo o carpeta que puede incluir cualquier carácter válido de nombre de archivo, así como los caracteres comodín estándar, * y ?. Puede utilizar rutas de archivos absolutas o lib://. |
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. |
filelist mask | Esta sintaxis produce una lista de todos los archivos incluidos en el directorio actual, separados por coma, que coincidan con la máscara de nombre de archivo. |
dirlist mask | Esta sintaxis produce una lista con todas las carpetas de la carpeta actual (separadas por comas) que coincidan con la máscara de nombre de archivo. |
fieldvaluelist mask | Esta sintaxis se repite a lo largo de los valores de un campo ya cargado en Qlik Sense. |
Ejemplo 1: Cargar una lista de archivos
Ejemplo 2: Crear una lista de archivos en el disco
Este ejemplo carga una lista de todos los campos Qlik Sense relacionados en una carpeta.
Ejemplo 3: Se repite a lo largo de los valores de un campo
Este ejemplo recorre toda la lista de valores cargados de FIELD y genera un nuevo campo, NEWFIELD. Por cada valor de FIELD, se crearán dos NEWFIELD registros.
La tabla resultante tiene el siguiente aspecto:
NEWFIELD |
---|
one-1 |
one-2 |
two-1 |
two-2 |
three-1 |
three-2 |