在《DB2 Data Warehouse Edition 中使用 Business Intelligence Reporting Tool》系列的前三部分,我們已涵蓋基本報表、圖表建立、分組與彙總報表設計。本文作為系列最終篇,將深入探討 報表互動功能、鑽取機制、圖表與表格同頁呈現 以及 報表模板重用,打造具備下鑽、動態排序、欄位隱藏、工具提示等豐富互動體驗的企業級報表方案。
承接第 3 部分的 MonthlyProfitabilityReport.rptdesign(每月獲利能力彙總報表),使用者點選子部門(如「童裝學校褲款」)後,導向另一份報表顯示該子部門的交易明細。此需求透過 報表參數傳遞 與 超連結鑽取 實現。
新增報表 InteractivityReport.rptdesign,使用既有的 MartLibrary 資料源與主頁面。
| 參數名稱 | 資料類型 | 顯示類型 | 預設值 | 隱藏 |
|---|---|---|---|---|
| pDepartment | String | Text Box | CHILDREN SCHOOL APPAREL | ✓ |
| pSubDepartment | String | Text Box | PANTS SCHOOL | ✓ |
| pStoreId | Integer | Text Box | 16 | ✓ |
| pYear | Integer | Text Box | 2002 | ✓ |
| pMonth | Integer | Text Box | 3 | ✓ |

圖1:新增報表參數
SQL 查詢使用參數標記(?)進行動態過濾:
select *
from MARTS.V_SALES
where DEPARTMENT = ? and SUBDEPARTMENT = ?
and STOREID = ? and YEAR = ? and MONTH = ?
在資料集參數頁面,將 5 個查詢參數依序連結至上述報表參數。

圖2:Data Explorer 視圖
提供使用者點擊圖示切換欄位顯示/隱藏的互動體驗。
hBasket (Integer, Default=0, Hidden) 與 hItem。HideImage.bmp。InteractivityReport.rptdesign,傳遞所有現有參數(pDepartment、pSubDepartment、pStoreId、pYear、pMonth)並將 hBasket=1。params["hBasket"]!=0。hItem),並同步更新 BASKET 圖片超連結加入 hItem 參數傳遞,確保狀態保持。
圖3:超連結設定

圖4:啟用隱藏運算式
sStoreName、sClass、sProduct (String, Hidden, Default=對應欄位名)。Sort.bmp 圖片。sStoreName='STORENAME')。row[params["sStoreName"]]、row[params["sClass"]]、row[params["sProduct"]],皆升序。
圖5:排序互動設定

圖6:排序鍵設定
復用 MonthlyProfitabilityReport 的標題樣式與交替列底色,設定表格置中、分頁間隔 25。最終版面如下:

圖7:報表版面
開啟 MonthlyProfitabilityReport.rptdesign,於 SUBDEPARTMENT 細節欄位設定超連結:
InteractivityReport.rptdesignpDepartment → DEPARTMENT、pSubDepartment → SUBDEPARTMENT、pStoreId → params["pStoreId"]、pYear → params["pYear"]、pMonth → params["pMonth"]
圖8:新增互動超連結

圖9:互動超連結參數對應
預覽彙總報表,點選任一子部門即可下鑽至明細報表,依傳遞參數自動過濾資料。

圖11:最終鑽取報表(部門:童裝學校、子部門:褲款學校、店別:16、年:2002、月:3)
新增 ChartAndGridGroupReport.rptdesign,使用空白模板,從頭佈局。資料集 ChartAndGridGroupdataset 查詢 MARTS.V_SALES_GROUPED,新增計算欄位 ProfitPerGroup = (row["PROFIT"]/Total.sum(row["PROFIT"]))*100。
gGroup 依 GROUP 分組,隱藏細節列,僅顯示群組標題與群組頁腳彙總(ITEMS、PROFIT、SALES、ProfitPerGroup 總和)。
圖12:選擇顯示資料

圖13:圓餅圖標題設定

圖14:編輯圖表格式

圖15:圖例版面設定

圖16:資料標籤前綴設定

圖17:表格群組設定

圖18:最終版面
將三個圖表寬高設為 6x4 英吋。若預覽無資料,需調整 Preferences > Report Design > Preview 最大列數為 2147483647。

圖19:圖表與網格成果

圖20:預覽偏好設定
將 ChartAndGridGroupReport 發布為範本「Samples Template - Three Charts and One Grid」,後續鑽取報表直接套用此版面。

圖22:發布為範本
ChartsAndGridDeptReport.rptdesign。SELECT RTRIM(DEPARTMENT) AS DEPARTMENT, ITEMS, CGS, SALES, PROFIT FROM MARTS.V_SALES_GROUPED WHERE StoreId=? AND Year=? AND Month=?,計算欄位改為 ProfitPerDept。gDepartment 依 DEPARTMENT 分組,數據元素改用 Total.sum() 彙總。ChartsAndGridGroupReport 中:
pStoreId、pYear、pMonth、pGroup=row["GROUP"]。pGroup;另加 Mouse Over/Move 顯示 GROUP 工具提示。
圖26:圖表超連結參數設定

圖27:圖表互動事件設定

圖28:預覽群組報表

圖29:部門鑽取報表
同邏輯建立 ChartsAndGridSubDeptReport.rptdesign,資料集加入 WHERE Department=?,Category 改為 SUBDEPARTMENT。於部門報表設定表格與圖表超連結傳遞 pDepartment 參數。最終實現三級鑽取:群組 → 部門 → 子部門。

圖33:子部門報表
本系列四部曲完整涵蓋了 BIRT 在 DB2 Data Warehouse Edition 中的應用:
掌握這些技術,即可構建具備豐富互動、多維度下鑽、高度重用元件的企業級報表解決方案,充分發揮 DB2 DWE 與 BIRT 整合的效能優勢。