For each..next
Der Steuerungsbefehl for each..next definiert eine Skriptiteration, die für jeden Wert in einer kommagetrennten Liste einen oder mehrere Befehle ausführt. Für jeden Wert der Liste werden die Befehle zwischen for und next einmal ausgeführt.
Syntax:
Durch eine besondere Syntax ist es möglich, eine Liste mit Verzeichnis- und Dateinamen zu generieren.
for each var in list
[statements]
[exit for [ ( when | unless ) condition ]
[statements]
next [var]
Argumente:
Argument | Beschreibung |
---|---|
var | Eine Skriptvariable, die bei jedem Durchlauf der Schleife den jeweils nächsten Wert in der Werteliste annimmt. Ist var nach next festgelegt, muss sie denselben Variablennamen haben, wie den hinter dem zugehörigen for each. |
Der Wert von var kann durch Befehle innerhalb der Schleife geändert werden, dies ist aber nicht empfehlenswert.
Steht in der Schleife eine exit for-Bedingung, wird die Ausführung des Skripts beim ersten Befehl nach der Schleife, d. h. nach der Zeile mit dem abschließenden next, fortgesetzt. Auf exit for kann verzichtet werden, wenn stattdessen when oder unless verwendet wird.
Syntax:
list := item { , item }
item := constant | (expression) | filelist mask | dirlist mask | fieldvaluelist mask
Argument | Beschreibung |
---|---|
constant | Beliebige Zahl oder String. Beachten Sie, dass ein direkt im Skript geschriebener String zwischen einfachen Anführungszeichen stehen muss. Ein String ohne einfache Anführungszeichen wird als Variable interpretiert. Anschließend wird der Wert der Variable verwendet. Zahlen müssen nicht zwischen einfachen Anführungszeichen stehen. |
expression | Eine beliebige Formel. |
mask | Eine Vorgabe für Dateinamen bzw. Ordnernamen, die alle in Dateinamen zugelassenen Zeichen enthalten kann, sowie die Wildcards * und ?. Sie können absolute Dateipfade oder lib://-Pfade verwenden. |
condition | Eine logische Formel, die True oder False ergibt. |
statements | Jede Gruppe von einem oder mehreren Qlik Sense-Skriptbefehlen. |
filelist mask | Durch die Syntax wird eine kommagetrennte Liste aller Dateien im aktuellen Verzeichnis generiert, die der Dateinamenmaske entsprechen. |
dirlist mask | Durch die Syntax wird eine kommagetrennte Liste aller Ordner im aktuellen Ordner generiert, die der Ordnernamenmaske entsprechen. |
fieldvaluelist mask | Diese Syntax durchläuft die Werte eines Felds, das bereits in Qlik Sense geladen wurde. |
Beispiel 1: Laden einer Liste von Dateien
Beispiel 2: Laden einer Dateiliste auf Speichermedium
In diesem Beispiel wird eine Liste aller relevanten Qlik Sense-Dateien in einen Ordner geladen.
Beispiel 3: Aggregierung nach den Werten eines Felds
In diesem Beispiel wird die Liste der geladenen Werte von FIELD aggregiert und ein neues Feld – NEWFIELD – erstellt. Für jeden Wert von FIELD werden zwei Datensätze NEWFIELD erstellt.
Die sich ergebende Tabelle sieht folgendermaßen aus:
NEWFIELD |
---|
one-1 |
one-2 |
two-1 |
two-2 |
three-1 |
three-2 |