For..next

L'istruzione di controllo for..next è un costrutto per la ripetizione di script con un contatore. Le istruzioni all'interno del ciclo incluso tra for e next verranno eseguite per ogni valore della variabile contatore tra i limiti inferiore e superiore specificati (inclusi).

Syntax:  

For counter = expr1 to expr2 [ step expr3 ]

[statements]

[exit for [ ( when | unless ) condition ]

[statements]

Next [counter]

 

Le espressioni expr1, expr2 ed expr3 vengono valutate solo la prima volta che il ciclo viene eseguito. Il valore della variabile counter può essere modificato dalle istruzioni all'interno del ciclo, tuttavia l'utilizzo di questa procedura di programmazione non è consigliato.

Se all'interno del ciclo è presente una clausola exit for, l'esecuzione dello script verrà trasferita alla prima istruzione dopo la clausola next indicando quindi la fine del ciclo. Una clausola exit for può essere resa condizionale dall'utilizzo opzionale di un suffisso when o unless.

Nota: Poiché for..next è un'istruzione di controllo che termina con un punto e virgola o con un carattere di fine riga, ciascuna delle tre possibili clausole corrispondenti (for..to..step, exit for e next) non deve superare la lunghezza limite di una riga.

Arguments:  

Argomento Descrizione
counter Un nome di variabile. Se counter viene specificato dopo next, deve avere lo stesso nome di variabile rilevato dopo l'istruzione for corrispondente.
expr1 Un'espressione che determina il primo valore della variabile counter per cui deve essere eseguito il ciclo.
expr2

Un'espressione che determina il valore massimo della variabile counter per cui deve essere eseguito il ciclo.

expr3 Un'espressione che determina il valore che indica l'incremento della variabile counter ogni volta che il ciclo è stato eseguito.
condition Un'espressione logica che restituisce un valore True o False.
statements Qualsiasi gruppo di una o più istruzioni dello script di QlikView.

Example 1: Caricamento di una sequenza di file

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

for a=1 to 9

LOAD * from file$(a).csv;

next

Example 2: Caricamento di un numero casuale di file

In questo esempio si presuppone l'utilizzo dei file di dati x1.csv, x3.csv, x5.csv, x7.csv e x9.csv. Il caricamento viene interrotto in un punto casuale mediante la condizione if rand( )<0.5 then.

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