Przeskocz do zawartości głównej

Call

Instrukcja sterowania call wywołuje procedurę zdefiniowaną we wcześniejszej instrukcji sub.

Składnia:  

Call name ( [ paramlist ])

 

Argumenty:  

Argumenty
Argument Opis
name Nazwa podprogramu.
paramlist Do podprogramu przekazana zostanie rozdzielana przecinkami lista rzeczywistych parametrów. Każdy z elementów listy może być nazwą pola, zmienną lub dowolnym wyrażeniem.

Podprogram wywoływany instrukcją call musi być zdefiniowany w instrukcji sub napotkanej na wcześniejszym etapie wykonywania skryptu.

Parametry są kopiowane do podprogramu, a jeśli parametrem instrukcji call jest zmienna, a nie wyrażenie, to po wyjściu z podprogramu parametry są ponownie kopiowane na zewnątrz.

Ograniczenia:  

  • Jako instrukcja sterowania instrukcja call kończy się na średniku lub znaku nowego wiersza, nie może zatem obejmować wielu wierszy.

  • Podczas definiowania podprogramu za pomocą Sub..end sub wewnątrz instrukcji sterującej, na przykład if..then, można wywołać podprogram tylko z tej samej instrukcji sterującej.

Przykład:  

W tym przykładzie powstaje lista wszystkich plików związanych z aplikacją Qlik w folderze oraz jego podfolderach, a następnie informacje o plikach są zapisywane w tabeli. Przyjęto, że użytkownik utworzył powiązania między danymi o nazwie Apps do tego folderu.

Podprogram DoDir jest wywoływany z odniesieniem do folderu 'lib://Apps' jako parametrem. W podprogramie istnieje wywołanie rekurencyjne Call DoDir (Dir), które powoduje, że funkcja wyszukuje pliki rekurencyjnie w podfolderach.

sub DoDir (Root) For Each Ext in 'qvw', 'qvo', 'qvs', 'qvt', 'qvd', 'qvc', 'qvf' For Each File in filelist (Root&'\*.' &Ext) LOAD '$(File)' as Name, FileSize( '$(File)' ) as Size, FileTime( '$(File)' ) as FileTime autogenerate 1; Next File Next Ext For Each Dir in dirlist (Root&'\*' ) Call DoDir (Dir) Next Dir End Sub Call DoDir ('lib://Apps')

Czy ta strona była pomocna?

Jeżeli natkniesz się na problemy z tą stroną lub jej zawartością — literówkę, brakujący krok lub błąd techniczny — daj nam znać, co możemy poprawić!