For each..next
Instrukcja sterowania for each..next to rodzaj iteracji skryptu służący do wykonania co najmniej jednej instrukcji dla każdej wartości na liście rozdzielonej przecinkami. Dla każdej wartości na liście wykonane zostaną instrukcje wewnątrz pętli między argumentami for i next.
Składnia:
Dzięki specjalnej składni możliwe jest generowanie list z nazwami plików i katalogów w katalogu bieżącym.
for each var in list
[statements]
[exit for [ ( when | unless ) condition ]
[statements]
next [var]
Argumenty:
Argument | Opis |
---|---|
var | Nazwa zmiennej skryptu pobierającej nową wartość z listy dla każdego wykonania pętli. Jeśli argument var określono po argumencie next, musi on mieć taką samą nazwę zmiennej jak nazwa po for each. |
Wartość zmiennej var można zmienić przy użyciu instrukcji wewnątrz pętli, ale nie jest to zalecana praktyka programowania.
Jeśli wewnątrz pętli napotkana zostanie klauzula exit for, wykonanie skryptu zostanie przeniesione do pierwszej instrukcji po klauzuli next wskazującej na koniec pętli. Klauzula exit for może zostać ustawiona jako warunkowa przez opcjonalne użycie sufiksu when lub unless.
Składnia:
list := item { , item }
item := constant | (expression) | filelist mask | dirlist mask | fieldvaluelist mask
Argument | Opis |
---|---|
constant | Dowolna liczba lub ciąg znaków. Należy pamiętać, że ciąg znaków wpisany bezpośrednio w skrypt musi być ujęty w pojedyncze cudzysłowy. Ciąg znaków bez pojedynczych cudzysłowów zostanie zinterpretowany jako zmienna i będzie użyta wartość zmiennej. Liczb nie trzeba ujmować w pojedyncze cudzysłowy. |
expression | Dowolne wyrażenie. |
mask | Maska nazwy pliku lub folderu, która może zawierać dowolne znaki dozwolone w nazwie pliku, a także standardowe symbole wieloznaczne, na przykład * i ?. Można używać bezwzględnych ścieżek do plików lub ścieżek lib://. |
condition | Wyrażenie logiczne, którego ocena zwraca True lub False. |
statements | Dowolna grupa zawierająca co najmniej jedną instrukcję skryptu Qlik Sense. |
filelist mask | Składnia tworzy rozdzieloną przecinkami listę wszystkich plików w bieżącym katalogu zgodnym z maską nazwy pliku. |
dirlist mask | Składnia tworzy rozdzieloną przecinkami listę wszystkich folderów w bieżącym folderze zgodnym z maską nazwy folderu. |
fieldvaluelist mask | Ta składnia jest iterowana przez wartości pola już załadowane do aplikacji Qlik Sense. |
Przykład 1: Ładowanie listy plików
Przykład 2: Tworzenie listy plików na dysku
W tym przykładzie ładowana jest lista wszystkich plików powiązanych z aplikacją Qlik Sense w folderze.
Przykład 3: Iteracja przez wartości pola
W tym przykładzie iteracja przeprowadzana jest przez listę załadowanych wartości FIELD i generowane jest nowe pole, NEWFIELD. Dla każdej wartości FIELD utworzone zostaną dwa rekordy NEWFIELD.
Wynikowa tabela wygląda następująco:
NEWFIELD |
---|
one-1 |
one-2 |
two-1 |
two-2 |
three-1 |
three-2 |