2014年11月24日 星期一

QlikView 語法攻略- 列出維度欄位控制選擇條件

最近在國外BLOG 看到一個範例與大家分享
這個範例原本是在說明另一種使用Chart Object 呈現像multibox選擇條件的方式
但是其中使用了一項控制方式特別拿出來跟大家說明一下
因為這樣的應用再進階一點可以控制到使用維度的互動,或是User 可用的維度呈現控制
















箭頭下方的Multibox Fields 即為維度清單列表, 使用者勾選了那些表格則會在上方呈現欄位供使用者條件選擇.接下來我們來拆解這個小丿步吧!


首先  1: 在語法裡必需要新增一個自定的維度清單TABLE
Multibox:
LOAD * INLINE
[
%Multibox
Year,
Name,
City,
Country,
Product,
Salesperson
];

而Multibox Fields  就是拿取%Multibox 欄位利用List Box 來呈現

動作 2:  建立一變數名稱為eMultiboxShow
         公式:   Index('|' & Concat(%Multibox, '|') &   '|', '|' & $1 & '|') > 0

         Concat(%Multibox, '|')  指是的選擇欄位的合併, 例如: 選了year , name
        則資料的組成就會變為   year|name
        那整個公式的測試請改為下列 , 例如 'Year'   ; 有發現嗎原本公式是$1 但現在用'Year'取代         了, 這個的意思是$1是傳入的參數的第一位,只是我們現在直接用Year 來使用  
      *替代語法*  Index('|' & Concat(%Multibox, '|') &   '|', '|' & 'Year' & '|') 

      {Examples index() 找出字串位置 :  
                            index( 'abcdefg', 'cd' ) returns 3
                  index( 'abcdabcd', 'b', 2 ) returns 6
                            index( 'abcdabcd', 'b', -2 ) returns 2
     }
    運用了Index() 查字串的特性,所以會得到>0 的位置

動作 3: 啓動條件  在Chart Object
       
             在啟用條件式用填入 $(eMultiboxShow('Year'))
              $() 是使用變數的意思,eMultiboxShow 是我們剛剛設的變數名稱,需要傳入值來取代$1 這數是傳用'Year'  這個就會和*替代語法*一樣了, 有發現嗎


以上很簡單的方式就能控制條件了。
而原本的Multibox 改進的方式可參考國外網站

4 則留言 :