跳到主要內容

Call

call 控制陳述式會呼叫必須由先前的 sub 陳述式定義的副程式。

語法:  

Call name ( [ paramlist ])

 

引數:  

引數
引數 描述
name 副程式的名稱。
paramlist 要傳送到副程式的實際參數的逗號分隔清單。清單中的各個項目可能是欄位名稱、變數或任意的運算式。

call 陳述式呼叫的副程式必須由指令碼執行期間較早出現的 sub 加以定義。

參數會複製到副程式中,而且如果 call 陳述式中的參數是變數而不是運算式,將在結束副程式時再次複製回參數。

限制:  

  • 由於 call 陳述式是控制陳述式,而且結尾是分號或行結尾,因此不可超出行邊界。

  • 透過控制陳述式內部的 Sub..end sub 定義副程式時,例如 if..then,您只能從相同的控制陳述式內部叫用副程式。

範例:  

此範例列出了在一個資料夾及其子資料夾中的所有 Qlik 相關檔案,並在表格中儲存檔案資訊。它假定您已建立一個名為 Apps、連接該資料夾的資料連線。

將透過參考該資料夾,以 'lib://Apps' 為參數呼叫 DoDir 副程式。在副程式內,有一個循環呼叫 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')

此頁面是否對您有幫助?

若您發現此頁面或其內容有任何問題——錯字、遺漏步驟或技術錯誤——請告知我們可以如何改善!