Call
call 制御ステートメントは、事前に sub ステートメントで定義されているサブルーチンを呼び出します。
構文:
Call name ( [ paramlist ])
引数:
引数 | 説明 |
---|---|
name | サブルーチンの名前。 |
paramlist | サブルーチンに送られる実パラメータのコンマ区切りのリスト。リスト内の各アイテムは、項目名、変数、または任意の数式です。 |
call ステートメントで呼び出されるサブルーチンは、スクリプトの実行中に先に出現する sub ステートメントで定義される必要があります。
パラメータはサブルーチンにコピーされます。call ステートメントのパラメータが数式ではなく変数の場合、パラメータはサブルーチンが終了したときにコピーして戻されます。
制限事項:
-
call ステートメントは、制御ステートメントであり、セミコロンまたは改行コードで終わるため、行をまたぐことはできません。
-
例えば [if..then] 制御文内の [Sub..end sub] を使用してサブルーチンを定義すると、同じ制御文内からはサブルーチンしか呼び出すことはできません。
この例では、フォルダおよびそのサブフォルダ内のすべての Qlik 関連ファイルを一覧表示し、ファイル情報をテーブルに保存します。Apps という名前のデータ接続がフォルダに作成されていることが前提です。
DoDirサブルーチンは、パラメータとして'lib://Apps'フォルダを参照して呼び出されます。サブルーチンの内部には再帰呼び出しCall DoDir (Dir)が存在します。この関数では、サブフォルダ内でファイルを再帰的に探索します。
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')