本文為《在 DB2 Data Warehouse Edition 中使用 Business Intelligence Reporting Tool》系列第二部分,著重於在 DWE Design Studio 中建立基本 BIRT 報表與圖表,並部署至 WebSphere Application Server。系列目標讀者包含:欲了解如何在 Design Studio 為關聯式資料建立報表者、覺得既有報表工具過於複雜者、以及想深入掌握 BIRT 外掛運作機制的開發人員。
SampleReports。
圖1:DWE Design Studio BI 透視圖

圖2:於 BI 透視圖中斷開連線

圖3:建立報表專案
為避免重複建立資料源、主頁面、樣式,於專案右鍵 New > Library,檔名 MartLibrary.rptlibrary。

圖4:建立程式庫
於 Library 的 Data Explorer 中右鍵 Data Source 選 New Data Source,選 JDBC Data Source,名稱 DWESamp。驅動程式類別 com.ibm.db2jcc.DB2Driver (3.1),URL 格式 jdbc:db2://serverIP:serverPort/databaseName(例:jdbc:db2://localhost:50000/DWESAMP),輸入使用者/密碼並測試連線。完成後重新命名節點為 DB2Server。

圖5:建立資料源

圖6:測試連線成功
於 Master Page 標籤拖入 3x1 網格,置入公司 Logo(JKSuperStoreLogo.bmp)於中欄,右欄插入動態文字 Date() 顯示當日日期。設定三欄寬度 33%/34%/33%,垂直置中。

圖7:主頁面預覽
DailySalesReport.rptdesign,範本選 Simple Listing。MartLibrary 中的 DB2Server 資料源與 NewSimpleMasterPage 拖入報表大綱對應節點。
圖8:新增報表精靈

圖9:連結程式庫資源
SELECT Date, Group, Department,
CAST(SubDepartment AS CHAR(20)) AS SubDepartment,
CAST(Product AS CHAR(30)) AS Product,
Baskets, Items, Price, CGS, Sales
FROM marts.V_SALES
資料集命名 DailySalesReportDataSet。

圖10:建立資料集
| 欄位名稱 | 資料類型 | 運算式 |
|---|---|---|
| WEEKENDING | DateTime | row["DATE"].getFullYear()+'-'+(row["DATE"].getMonth()+1)+'-'+(row["DATE"].getDate()+(7-row["DATE"].getDay())) |
| PROFIT | Decimal | row["SALES"]-row["CGS"] |
| PROFIT_PCT | Decimal | (row["SALES"]-row["CGS"])/row["SALES"] |
| 參數名稱 | 類型 | 預設值 |
|---|---|---|
| pYear | Integer | 2002 |
| pMonth | Integer | 3 |
| pStoreId | Integer | 16 |
於資料集 SQL 加入 WHERE Year=? AND Month=? AND StoreId=?,參數綁定至上述報表參數。

圖11:建立報表參數
於主頁面或報表頁首插入 HTML 表單,含 Year、Month、Store ID 文字框與 Update 按鈕,值綁定 params["pYear"] 等,action 指向 ../frameset 實現動態查詢。
表格 Property Editor > Page Break 設定間隔 25 列。
於表格頁腳插入資料元素,運算式 Total.sum(row["SALES"]) 等,標示為總計。
於排序欄位表頭加入超連結,Drill-through 至自身報表,傳遞排序參數實現動態排序。
於資料集新增計算欄位 ProfitPerGroup = (row["PROFIT"]/Total.sum(row["PROFIT"]))*100。
點選 Preview 標籤,即可模擬瀏覽器檢視效果,測試參數輸入、分頁、排序等互動。
預覽工具列提供「Export to Excel」功能,可將報表資料匯出 .xls 供離線分析。
https://host:port/SampleReports/frameset?__report=DailySalesReport.rptdesign。本教學完整示範了從零開始建立 BIRT 專案、共用程式庫、資料源、主頁面,進而製作具備參數查詢、計算欄位、分頁、彙總、樣式、互動排序的每日銷售報表,並建立第一個多系列長條圖。最後說明了 Web 部署與多格式匯出的完整流程。下一部分(第 3 部分)將進階講解彙總報表與分組報表的建立,包含紅綠燈、複雜兩遍計算與目錄功能。