For each..next
for each..next 控制陳述式是指令碼反覆運算建構,這會對於逗號分隔清單中的各個值執行一或數個陳述式。將會為清單的各個值,執行由 for 與 next 括住之迴圈內的陳述式。
語法:
特殊語法能夠以目前目錄中的檔案和目錄名稱產生清單。
for each var in list
[statements]
[exit for [ ( when | unless ) condition ]
[statements]
next [var]
引數:
引數 | 描述 |
---|---|
var | 為各個迴圈執行從清單取得新值的指令碼變數名稱。如果在 next 之後指定 var,它的變數名稱必須與對應的 for each 之後出現的變數名稱相同。 |
迴圈內的陳述式可變更 var 變數的值,不過在程式設計上這不見得是好方法。
如果 exit for 子句出現在迴圈中,指令碼的執行將傳輸到 next 子句後的第一個陳述式,代表迴圈結束。選用 when 或 unless 後置詞,即可將 exit for 子句設定為條件子句。
語法:
list := item { , item }
item := constant | (expression) | filelist mask | dirlist mask | fieldvaluelist mask
引數 | 描述 |
---|---|
constant | 任何數字或字串。請注意,直接在指令碼中寫入的字串必須以單引號括住。沒有單引號的字串將被解譯為變數,因而將使用變數的值。數字不需要以單引號括住。 |
expression | 任意運算式。 |
mask | 檔案名稱或目錄名稱遮罩,其中可能包含任何有效的檔案名稱字元,以及標準的萬用字元 * 和 ?。 您可以使用絕對檔案路徑或 lib:// 路徑。 |
condition | 評估為 True 或 False 的邏輯運算式。 |
statements | 是一或多個 Qlik Sense 指令碼陳述式的任何群組。 |
filelist mask | 此語法會對於符合檔案名稱遮罩的目前目錄中所有的檔案產生逗號分隔清單。 資訊備註此引數僅在標準模式下支援物件庫連線。請參閱檔案系統存取限制 |
dirlist mask | 此語法會對於符合資料夾名稱遮罩的目前資料夾中所有的資料夾產生逗號分隔清單。 資訊備註此引數僅在標準模式下支援物件庫連線。請參閱檔案系統存取限制 |
fieldvaluelist mask | 此語法透過已載入至 Qlik Sense 的欄位值反覆運算。 |
範例 1: 載入檔案清單
範例 2: 在磁碟上建立檔案清單
此範例會載入資料夾中所有 Qlik Sense 相關檔案的清單。
範例 3: 透過欄位值反覆運算
此範例會透過 FIELD 的已載入值清單反覆運算,並產生新的欄位 NEWFIELD。對於 FIELD 的每一個值,將建立兩筆 NEWFIELD 記錄。
產生的表格如下所示:
NEWFIELD |
---|
one-1 |
one-2 |
two-1 |
two-2 |
three-1 |
three-2 |