輸入欄位
QlikView 支援特殊類型的輸入欄位,完全不需要執行指令碼即可變更。
輸入欄位就和 QlikView 的其他任何欄位一樣,差別只在於不需要再次執行指令碼,往後即可變更在指令碼中讀取的值。輸入欄位的使用方式,和所有類型的工作表物件中其他任何的欄位一樣。
使用輸入欄位時,指令碼會建立各個欄位值的預留位置,日後編輯即可包含新的資料。在指令碼的inputfield 陳述式中列出尚未在 LOAD 或 SELECT 陳述式中出現的任何欄位,即可將任何欄位轉換為輸入欄位。
在列表框儲存格、表格方塊儲存格和表格圖表運算式儲存格中,可以變更輸入欄位的值。只有包含輸入欄位的列表框和表格資料行才可供編輯。將滑鼠暫留在可編輯的儲存格上,即可看見輸入圖示。按一下該圖示,即可將該儲存格設為輸入編輯模式。處於輸入編輯模式時,可使用向上鍵/向下鍵,在儲存格之間移動。每當輸入新的值時,整份 QlikView 文件就會自動重新計算。
表格圖表運算式儲存格可能包含特殊輸入欄位彙總函數,並仍將開啟以供輸入。這項變更將按照預先定義的演算法重新散佈到基礎欄位值,例如「平均分散」或「依比例分散」。
可以指定相關變更。
適用下列語法 (n 是數字):
語法 | 描述 |
---|---|
%+n | 目前值增加 n% |
%-n | 目前值減少 n% |
+=n | 目前值增加 n |
-=n | 目前值減少 n |
*=n | 目前值乘以 n |
/=n | 目前值除以 n |
範例:
%+10 會將目前值增加 10%。
+=56 會將目前值增加 56。
*=2 會將值乘以 2。
/=2 會將值除以 2。
/=0 不變。
另外也有自動化 API 可透過程式設計的方式擷取和設定值。
限制
- 計算後的欄位和索引鍵欄位無法做為輸入欄位。輸入欄位功能將自動停用。
- 輸入欄位不適用於大量資料,因為這些欄位儲存資料的效率遠低於一般欄位。
- 輸入欄位和邏輯欄位之間的索引鍵必須為唯一,不可包含任何重複的值。
輸入欄位範例
此範例將輸入欄位新增至資料並顯示您可以如何以互動方式更新值。
-
在載入指令碼中載入下列資料。
Inputfield Value;
Table1:
LOAD * INLINE
[
Key, Attribute, Value
Bob, Jan, 100
Bob, Feb, 200
Bob, Mar, 300
Kate, Jan, 400
Kate, Feb, 500
Kate, Mar, 600
];
- 載入資料後,建立表格方塊並新增全部三個欄位。
-
建立連續表圖表並新增 Key 作為維度。新增以下運算式:
- Sum(Value)
- InputSum(Value)
兩個運算式將顯示相同的值,但您只能更新連續表中的 InputSum(Value),無法更新 Sum(Value)。
您現在可以在表格方塊中以互動方式變更 Value。連續表中運算式的彙總值將會據此更新。
您也可以在連續表中更新 InputSum(Value) 運算式的值。將會在表格方塊中更新基礎值。該變更會同等發佈至所有值,但您可以透過 InputSum() 函數變更發佈模式。