輪替狀態機
描述
您可以使用輪替狀態機執行多組不同資料項目之間的比較分析,例如進行購物籃分析。一個狀態可以保留一組選項。
QlikView 開發人員可以在 QlikView 文件中建立多個狀態,並且將這些狀態套用至文件內的特定物件。使用者可以複製這些物件 (伺服器物件),然後使這些物件進入不同的狀態。
分離和輪替狀態機兩者之間最大的差別在於,指定狀態中的所有物件將回應至使用者在該狀態中選取的選項。使用者在其他狀態中選取的選項不影響指定狀態中的物件。
載入指令碼中並無法存取輪替狀態機功能。
設定輪替狀態機
進行下列作業,啟用並設定輪替狀態機:
- 按一下輪替狀態機...,位於 文件屬性:一般標籤。
隨即會開啟輪替狀態機對話方塊。 - 按一下新增...以建立多個狀態,並為這些狀態命名。這些名稱將做為狀態識別碼之用。
- 按一下確定關閉對話方塊。
QlikView 開發人員現在可以從畫面物件建立新的輪替狀態機。
從 QlikView Server 存取 QlikView 文件的使用者可以使用輪替狀態機,但是無法建立輪替狀態機。
將狀態指派給物件
進行下列作業,將狀態指派給物件:
- 開啟屬性對話方塊,並選取一般標籤。
- 將輪替狀態機設定為要用於物件的狀態識別碼。
物件現在將獨立於文件的其他部份之外,無法加以選取,只有在將其他物件設定為相同的狀態,才能進行選取。
有兩個狀態一律可以使用:預設狀態和繼承。預設狀態是大部分使用 QlikView 時所處的狀態,而且以 $ 表示。QlikView 文件一律處於預設狀態。物件可以繼承較高層級物件的狀態,例如工作表和容器。這表示狀態的繼承順序是:文件 - 工作表 - 工作表物件。除非 QlikView 開發人員覆寫,否則工作表和工作表物件一律處於繼承狀態。
比較輪替狀態機
您可以比較同一個物件的兩個狀態。例如,您可以建立折線圖,並使用集合分析在運算式中指派狀態,以同一軸顯示資料的兩個狀態。
範例:
若您已定義狀態 Group1 及 Group2,您可以比較欄位的平均 Adj.Close用於群組,方法是在折線圖中顯示這兩個運算式:
Avg({[Group1]} [Adj.Close])
Avg({[Group2]} [Adj.Close])
使用輪替狀態機的邏輯行為
按清除按鈕將影響所有狀態。
在 Internet Explorer 外掛程式中,有一個功能表項目已經新增到清除按鈕下拉式功能表,以便使用者清除選取的特定狀態。Ajax 用戶端沒有這個功能表,但是建立一個動作按鈕連接特定狀態的 [清除] 按鈕,也可達成相同的功能。
按返回和往前按鈕將影響所有狀態。特定狀態則沒有可以來回移動的機制。
按鎖定和解除鎖定按鈕將影響所有狀態。特定狀態無法使用這些按鈕鎖定和解除鎖定。可以在特定狀態中使用清單方塊的快顯功能表,以鎖定狀態中的特定欄位。
選項功能表中的功能表項目可套用至所有狀態。此功能表中沒有可以影響特定狀態的機制。
輪替狀態機可用於連結物件。狀態可套用至物件的所有執行個體。變更連結物件的狀態將使得其他連結物件進入相同的狀態。
可以在特定狀態中設定要發生的動作。一個已知例外是指執行巨集動作。其可以設定在特定狀態中執行,不過巨集會在所有狀態中發出。
使用遺失狀態 (開發人員已移除此狀態) 的物件,將會透過輪替狀態機下拉式清單還原為預設狀態,其中將顯示下列資訊:
AlternateStateName <unavailable>。
替代狀態中的變數
您可以指定要在展開變數時使用哪個狀態。變更特定狀態不會影響以另一個狀態展開的變數值。若您沒有指定狀態,會以預設狀態展開變數。
範例:
若您擁有名稱為 MyState 的狀態,以及名稱為 vMyVar 的變數:
- $(vMyVar) 以預設狀態展開變數。
- $({MyState} vMyVar) 以 MyState 狀態展開變數。