For each..next
L'instruction de contrôle for each..next est une construction d'itération de script qui exécute une ou plusieurs instructions pour chaque valeur d'une liste de valeurs séparées par des virgules. Les instructions comprises entre for et next à l'intérieur de la boucle sont exécutées pour chaque valeur de la liste.
Une syntaxe spéciale permet de générer des listes comprenant les noms des fichiers et des répertoires contenus dans le répertoire actif.
for each var in list
[statements]
[exit for [ ( when | unless ) condition ]
[statements]
next [var]
Argument | Description |
---|---|
var | Nom de variable de script qui prendra une nouvelle valeur de la liste à chaque exécution de la boucle. Si l'argument var est spécifié après next, il doit s'agir du même nom de variable que celui qui se trouve après le for each correspondant. |
Il est possible de modifier la valeur de la variable var à l'aide d'instructions placées à l'intérieur de la boucle, mais ce n'est pas une bonne méthode de programmation.
Si une clause exit for se trouve dans la boucle, l'exécution du script est transférée à la première instruction qui suit la clause next indiquant la fin de la boucle. Il est possible de rendre une clause exit for conditionnelle par l'utilisation facultative d'un suffixe when ou unless.
list := item { , item }
item := constant | (expression) | filelist mask | dirlist mask | fieldvaluelist mask
Argument | Description |
---|---|
constant | Tout nombre ou toute chaîne. Veuillez noter qu'une chaîne écrite directement dans le script doit être placée entre guillemets simples. Une chaîne non mise entre guillemets simples est interprétée comme une variable ; la valeur de la variable lui est ensuite appliquée. Il est inutile de placer les nombres entre guillemets simples. |
expression | Expression arbitraire. |
mask | Masque de nom de fichier ou de dossier pouvant inclure n'importe quel caractère de nom de fichier valide, ainsi que les caractères génériques standard, * et ?. Vous pouvez utiliser des chemins d'accès absolus ou des chemins d'accès lib://. |
condition | Expression logique dont l'évaluation a pour résultat True ou False. |
statements | Tout groupe d'une ou plusieurs instructions de script Qlik Sense. |
filelist mask | Cette syntaxe génère une liste de tous les fichiers, séparés par des virgules, qui se trouvent dans le répertoire actif et qui correspondent au masque de nom de fichier. |
dirlist mask | Cette syntaxe génère une liste de tous les dossiers, séparés par des virgules, qui se trouvent dans le dossier actif et qui correspondent au masque de nom de dossier. |
fieldvaluelist mask | Cette syntaxe effectue une itération à travers les valeurs d'un champ déjà chargé dans Qlik Sense. |
Chargement d'une liste de fichiers
Création d'une liste de fichiers sur un disque
Dans cet exemple, la liste de tous les fichiers relatifs à Qlik Sense sont chargés dans un dossier.
Itération au sein des valeurs d'un champ
Cet exemple itère au sein de la liste des valeurs chargées de champ FIELD et génère un nouveau champ, NEWFIELD. Pour chaque valeur de FIELD, deux enregistrements NEWFIELD sont créés.
La table résultante a l'aspect suivant :
NEWFIELD |
---|
one-1 |
one-2 |
two-1 |
two-2 |
three-1 |
three-2 |