指令碼變數
QlikView 中的變數是用於儲存靜態值或計算的容器,例如數值或英數字元值。在文件中使用變數時,對變數進行的任何變更都會套用至所有使用的變數。 使用指令碼編輯器在指令碼中定義變數,其中變數從載入指令碼中的 Let、Set 或其他控制陳述式中取得其值。
如果變數值的第一個字元為等號「=」,QlikView 會嘗試將值評估為公式 (QlikView 運算式),然後顯示或傳回結果,而非傳回實際的公式文字。
使用時,變數值會替代其變數。變數可用於指令碼中以用作貨幣符號展開,也可用於各種控制陳述式中。如果相同的字串在指令碼中重複多次 (如路徑),這就非常適用。
QlikView 會在指令碼執行的開端,設定某些特別的系統變數,而不論其先前的值為何。
定義變數時,會使用下列的語法:
or
let variable = expression
is used.Set 命令將文字指派給變數等號右側,然而 Let 命令會評估運算式。
變數會區分大小寫。
範例:
set HidePrefix = $ ; // 變數會取得字元 '$' 作為值。
let vToday = Num(Today()); // 傳回今天的日期序號。
變數計算
有數種方法來搭配使用變數與 QlikView 中計算的值,結果取決於您如何定義它,以及您如何在運算式中呼叫它。
在此範例中,我們載入部分內嵌資料:
讓我們定義兩個變數:
在第二個變數中,我們在運算式之前新增等號。這將造成變數在展開之前予以計算,並評估運算式。
如果您按原樣使用 vSales 變數,例如在測量中,結果將是字串 Sum(Sales),即不執行任何計算。
如果您新增貨幣符號展開,並在運算式中呼叫 $(vSales),則會展開變數,並顯示 Sales 的總和。
最終,如果您呼叫 $(vSales2),則在展開變數之前對其進行計算。這表示所顯示結果是 Sales 的總和加總。將 =$(vSales) 與 =$(vSales2) 用作測量運算式的差異顯示在此圖表中,顯示下列結果:
Dim | $(vSales) | $(vSales2) |
---|---|---|
A | 350 | 1560 |
B | 470 | 1560 |
C | 740 | 1560 |
如您可以看到,$(vSales) 產生維度值的部分加總,而 $(vSales2) 產生總和加總。