For each..next
De besturingsopdracht for each..next is een herhalingsconstructie voor gebruik in scripts waarmee een of meer opdrachten worden uitgevoerd voor elke waarde in een door komma's gescheiden lijst. De opdrachten in de lus tussen for en next worden uitgevoerd voor elke waarde van de lijst.
Syntaxis:
Door een speciale syntaxis kunnen lijsten worden gegenereerd met namen van bestanden en mappen in de huidige map.
for each var in list
[statements]
[exit for [ ( when | unless ) condition ]
[statements]
next [var]
Argumenten:
Argument | Beschrijving |
---|---|
var | De naam van een scriptvariabele die een nieuwe waarde uit de lijst ophaalt, telkens wanneer de lus wordt uitgevoerd. Als var wordt opgegeven na next moet de variabele dezelfde naam hebben als de variabele die wordt gevonden na de overeenkomende for each. |
De waarde van de var kan worden gewijzigd door opdrachten binnen de lus. Dit is echter met het oog op de gebruikelijke manier van programmeren niet aan te raden.
Als een clausule exit for binnen de lus wordt aangetroffen, gaat de uitvoering van het script over op de eerste opdracht na de clausule next die het einde van de lus aangeeft. De clausule exit for kan voorwaardelijk worden gemaakt met het optionele suffix when of unless.
Syntaxis:
list := item { , item }
item := constant | (expression) | filelist mask | dirlist mask | fieldvaluelist mask
Argument | Beschrijving |
---|---|
constant | Elk getal of elke tekenreeks. Een tekenreeks die rechtstreeks in het script wordt opgenomen moet tussen enkele aanhalingstekens worden geplaatst. Een tekenreeks zonder enkele aanhalingstekens wordt geïnterpreteerd als een variabele en vervolgens wordt de waarde van de variabele gebruikt. Getallen hoeven niet tussen enkele aanhalingstekens te worden geplaatst. |
expression | Een willekeurige uitdrukking. |
mask | Een masker voor de naam van een bestand of map die geldige tekens voor bestandsnamen plus de standaardjokertekens, * en ?, kan bevatten. U kunt absolute bestandspaden of paden lib:// gebruiken. |
condition | Een logische uitdrukking die resulteert in True of False. |
statements | Een willekeurige groep van een of meer Qlik Sense-scriptopdrachten. |
filelist mask | Deze syntaxis produceert een lijst met door komma's gescheiden namen van alle bestanden in de huidige map die overeenkomen met het bestandsnaammasker. InformatieDit argument ondersteunt alleen bibliotheekverbindingen in de standaardmodus. Zie Beperking van toegang tot bestandssysteem |
dirlist mask | Deze syntaxis produceert een lijst met door komma's gescheiden namen van alle mappen in de huidige map die overeenkomen met het mapnaammasker. InformatieDit argument ondersteunt alleen bibliotheekverbindingen in de standaardmodus. Zie Beperking van toegang tot bestandssysteem |
fieldvaluelist mask | Deze syntaxis itereert door de waarden van een veld die al in Qlik Sense zijn geladen. |
Voorbeeld 1: Een lijst van bestanden laden
Voorbeeld 2: Een lijst van bestanden maken op schijf
Via dit voorbeeld wordt een lijst met alle aan Qlik Sense gerelateerde bestanden in een map geladen.
Voorbeeld 3: Itereren door de waarden van een veld
Dit voorbeeld itereert door de waarden van geladen waarden van FIELD en genereert een nieuw veld, NEWFIELD. Voor elke waarde van FIELD, worden twee NEWFIELD-records gemaakt.
De resulterende tabel ziet er als volgt uit:
NEWFIELD |
---|
one-1 |
one-2 |
two-1 |
two-2 |
three-1 |
three-2 |