指令碼變數

QlikView中的變數是用於儲存靜態值或計算的容器,例如數值或英數字元值。在文件中使用變數時,對變數進行的任何變更都會套用至所有使用的變數。 使用指令碼編輯器在指令碼中定義變數,其中變數從載入指令碼中的 LetSet 或其他控制陳述式中取得其值。

如果變數值的第一個字元為等號「=」,QlikView會嘗試將值評估為公式 (QlikView 運算式),然後顯示或傳回結果,而非傳回實際的公式文字。

使用時,變數值會替代其變數。變數可用於指令碼中以用作貨幣符號展開,也可用於各種控制陳述式中。如果相同的字串在指令碼中重複多次 (如路徑),這就非常適用。

QlikView會在指令碼執行的開端,設定某些特別的系統變數,而不論其先前的值為何。

定義變數時,會使用下列的語法:

set variablename = string

or

let variable = expression

is used.Set命令將文字指派給變數等號右側,然而 Let 命令會評估運算式。

變數會區分大小寫。

範例:  

set HidePrefix = $ ; //變數會取得字元 ‘$’ 作為值。

let vToday = Num(Today()); //傳回今天的日期序號。

變數計算

有數種方法來搭配使用變數與 QlikView中計算的值,結果取決於您如何定義它,以及您如何在運算式中呼叫它。

在此範例中,我們載入部分內嵌資料:

LOAD * INLINE [ Dim, Sales A, 150 A, 200 B, 240 B, 230 C, 410 C, 330 ];

讓我們定義兩個變數:

Let vSales = 'Sum(Sales)' ;
Let vSales2 = '=Sum(Sales)' ;

在第二個變數中,我們在運算式之前新增等號。這將造成變數在展開之前予以計算,並評估運算式。

如果您按原樣使用 vSales變數,例如在測量中,結果將是字串 Sum(Sales),即不執行任何計算。

如果您新增貨幣符號展開,並在運算式中呼叫 $(vSales),則會展開變數,並顯示 Sales 的總和。

最終,如果您呼叫$(vSales2),則在展開變數之前對其進行計算。這表示所顯示結果是Sales的總和加總。將 =$(vSales)=$(vSales2) 用作測量運算式的差異顯示在此圖表中,顯示下列結果:

Dim $(vSales) $(vSales2)
A 350 1560
B 470 1560
C 740 1560

如您可以看到,$(vSales)產生維度值的部分加總,而 $(vSales2) 產生總和加總。

另請參閱: