Webi 動態選擇度量

 

這篇文章之前發在sdn的英文blog,現譯成中文併發在中文的企業blog,供參考。原文及相關評論請見http://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/20426http://scnblogs.techweb.com.cn/byinsight/archives/15.html

我們都知道Web Intelligence具有高級的分析功能,是一個非常靈活的報表工具。在這篇文章裏,我會演示一個使用Webi實現動態選擇度量對象的方案。首先解釋一下什麼是”動態選擇度量”:例如我們有多個度量對象,包括銷售數量,銷售收入,折扣數量,目標銷售輸入等,用戶想動態的選擇哪些度量在報表上顯示,哪些不顯示。這個業務需求的背景是,有些報表的度量太多,比如今年銷售金額,去年銷售金額,增長額,增長率等等,如果報表顯示所有度量,那麼報表也許會看起來太臃腫且不方便使用。所以用戶想選擇性的查看他關注的那幾個度量。

通過Webi強大的交互功能,用戶可以拖拽維度和設定格式,但對於那些連Excel都不太會的用戶,我們需要更簡單的交互方式。所以我們創建一個簡單的格式化報表,通過簡單的交互界面,複選框,來選擇你想要看到的維度。下面是報表的的示例,用戶通過在左邊的面板中選擇維度,右面的報表區域中的維度會相應的隱藏或顯示:

e69caae591bde5908d

使用瞭如下技術來實現以上效果:
1.         Webi交叉表
2.         Webi輸入控件(XI 3.1 SP2之後的新功能)
3.         Universe 派生表
通過以下簡單的步驟可以完成上面的示例報表:
1.         通過eFashion的連接建立一個簡單的universe,添加一個”measure_names”的派生表,SQL語句如下:
select distinct ‘Sales Revenue’ as mname from outlet_lookup
union
select distinct ‘Sales Quantity’ from outlet_lookup
union
select distinct ‘Margin’ from outlet_lookup
2. 基於派生表中唯一的那個字段,創建一個維度對象,universe結構如下所示:
e69caae591bde5908d1
3.使用此universe創建一個webi報表,使用如下對象:State,Measure Name,Margin,Sales Revenue和Sales Quantity。注意universe中的派生表並沒有和其他表進行連接,因此此查詢將會產生一個笛卡爾積的結果,這正是我們所需要的。
4. 查詢結果如下:
e69caae591bde5908d2
5.         創建一個報表變量”Measure Value”定義如下:、
=If([Measure Name]=”Margin”) Then [Margin] ElseIf([Measure Name]=”Sales Quantity”) Then [Sales Quantity] Else [Sales Revenue]
6.         創建一個交叉表,把state對象作爲行,Measure Name作爲列,並將變量Measure Value放入單元格中。
7.         基於Measure Name創建一個輸入控件,並選擇複選框作爲輸入控件類型。

大功告成!現在你可以通過更爲直觀的界面來選擇這些度量的顯示,而不再需要拖拽。對於生產環境,可以把派生表換成物理表以提高效率。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章