For..next

O comando de controle for..next cria uma construção de iteração de script com um contador. Os comandos dentro do loop incluídos entre for e next serão executados para cada valor da variável do contador, entre (e inclusive) os limites inferior e superior especificados.

Syntax:  

For counter = expr1 to expr2 [ step expr3 ]

[statements]

[exit for [ ( when | unless ) condition ]

[statements]

Next [counter]

 

As expressões expr1, expr2 e expr3 serão avaliadas somente na primeira vez que o loop é inserido. O valor da variável counter pode ser alterado por comandos dentro da referência circular, entretanto, essa não é uma prática de programação recomendável.

Se uma cláusula exit for for encontrada dentro do loop, a execução do script será transferida para o primeiro comando após a cláusula next, indicando o fim do loop. Uma cláusula exit for pode ser transformada em condicional pelo uso opcional de um sufixo when ou unless.

Nota: Como o comando for..next é um comando de controle e, portanto, termina com um ponto e vírgula ou com um fim de linha, cada uma das três cláusulas possíveis (for..to..step,exit for e next) não deve ultrapassar o limite da linha.

Arguments:  

Argumento Descrição
counter Um nome de variável. Se counter for especificado depois de next, ele deverá ter o mesmo nome de variável que a encontrada após o for correspondente.
expr1 Uma expressão que determina o primeiro valor da variável counter para o qual o loop deve ser executado.
expr2

Uma expressão que determina o valor máximo da variável counter para o qual o loop deve ser executado.

expr3 Uma expressão que determina o valor que indica o incremento da variável counter cada vez que o loop é executado.
condition uma expressão lógica de avaliação como True ou False.
statements Qualquer grupo de um ou mais comandos de script do QlikView.

Example 1: Carregando uma sequência de arquivos

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

for a=1 to 9

LOAD * from file$(a).csv;

next

Example 2: Carregando um número aleatório de arquivos

Neste exemplo, presumimos que existem os arquivos de dados x1.csv, x3.csv, x5.csv, x7.csv e x9.csv. O carregamento é interrompido em um ponto aleatório usando a condição 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