For..next

Der Steuerungsbefehl for..next ist eine Skriptiteration mit einem Zähler. Für jeden Zähler innerhalb (und einschließlich) der festgelegten Grenzen werden die Befehle innerhalb der Schleife, die durch forund next eingeschlossen sind, jeweils einmal ausgeführt.

Syntax:  

For counter = expr1 to expr2 [ step expr3 ]

[statements]

[exit for [ ( when | unless ) condition ]

[statements]

Next [counter]

 

Die Formeln expr1, expr2 und expr3 werden nur beim ersten Durchlauf der Schleife ausgewertet. Der Wert des Zählers 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.

Hinweis: Da for..next zu den Steuerungsbefehlen gehört und mit einem Semikolon oder einer Zeilenschaltung abschließt, dürfen sich die einzelnen Befehlssequenzen (for..to..step, exit for und next) nicht über mehrere Zeilen erstrecken.

Arguments:  

Argument Beschreibung
counter Ein Variablenname. Ist counter nach next festgelegt, muss sie denselben Variablennamen haben, wie den hinter dem zugehörigen for.
expr1 Eine Formel, deren Ergebnis den ersten Wert der Variable counter ergibt, für welche die Schleife ausgeführt wird.
expr2

Eine Formel, deren Ergebnis den maximalen Wert der Variable counter ergibt, für welche die Schleife ausgeführt wird.

expr3 Eine Formel, deren Ergebnis den Zuwachs von counter ergibt, um den sich der Zähler bei jedem Durchlauf der Schleife erhöht.
condition Eine logische Formel, die True oder False ergibt.
statements Jede Gruppe von einem oder mehreren QlikView-Skriptbefehlen.

Example 1: Laden einer Reihe von Dateien

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

for a=1 to 9

LOAD * from file$(a).csv;

next

Example 2: Laden einer zufälligen Zahl von Dateien

In diesem Beispiel werden die Datendateien x1.csv, x3.csv, x5.csv, x7.csv und x9.csv angenommen. Der Ladevorgang wird an zufällig ausgewählten Punkten mit der Bedingung if rand( )<0.5 then gestoppt.

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