本教程為「在 DWE Design Studio 中使用 BIRT 報表」系列第 3 部分,重點講解彙總報表(每月獲利能力)與分組報表(依部門分組獲利能力)的建立、部署與進階技巧:紅綠燈動態圖示、兩遍計算、目錄導航、動態排序。
前置需求:完成第 1 部分安裝 BIRT 2.1.1、建立 DWESAMP 資料庫與 V_SALES/V_SALES_GROUPED 視圖、WebSphere 6.0 部署 BIRT、可執行第 2 部分範例報表。
MonthlyProfitabilityReport.rptdesign,引用共用庫 MartLibrary.rptlibrary(資料源、母版頁)pStoreId(預設 16)、pYear(2002)、pMonth(3)MonthlyProfitabilityReportDataSet 使用 SQL:select StoreId as StoreID, YEAR, MONTH, RTRIM(GROUP) as GROUP,
RTRIM(DEPARTMENT) as DEPARTMENT, RTRIM(SUBDEPARTMENT) as SUBDEPARTMENT,
ITEMS, AVGPRICE, CGS, SALES, PROFIT, PROFITPCT
from MARTS.V_SALES_GROUPED
where StoreId = ? and YEAR = ? and MONTH = ?
pStoreId、pYear、pMonth,方向皆為 InputStoreId 欄

DailySalesReport.rptdesign 複製 Header 與 report styles,套用至標題列與資料列PROFIT < 40 或 PROFITPCT < 25 時,該儲存格背景轉紅STATUS,插入動態圖片元素PROFIT 與 PROFITPCT 閾值顯示:| 條件 | 圖示 |
|---|---|
| PROFIT < 10 且 PROFITPCT < 25 | Red.gif |
| PROFIT ≤ 10 且 PROFITPCT ≥ 25 | Yellow.gif |
| PROFIT > 10 且 PROFITPCT ≤ 25 | Yellow.gif |
| PROFIT > 10 且 PROFITPCT > 25 | Green.gif |


StatusA、StatusB(整數),邏輯與紅綠燈對應,分別對應升序/降序權重sStatus(預設 GROUP)row[params["sStatus"]],方向 AscendingsStatus=StatusA 或 StatusB


ProfitabilityByDeptReport.rptdesign,資料集同前(無 WHERE 子句)GROUP,TOC 項目綁定 Group Row,不重複標題DEPARTMENT,重複標題,TOC 自動生成
屬性編輯器 → Properties → Table Of Contents → 運算式建構器綁定分組欄位,報表部署至 Web 後左側自動顯示可摺疊目錄樹。

DeptRankTotal.rank(row["DEPARTMENT"], true),Aggregation 選 ALL從彙總報表複製參數 pStoreId、pYear、pMonth 及 HTML 表單(修改 action 目標報表名),資料集加上相同 WHERE 子句並綁定參數。

| 層級 | 欄位 | 運算式 | Aggregate On |
|---|---|---|---|
| DEPARTMENT Group Footer | PROFIT 等 | Total.sum(row["PROFIT"]) | DEPARTMENT |
| GROUP Group Header | TotalGroupProfit | Total.sum(row["ProfitSum"]) | GROUP |
| Report Footer | OverallProfit | Total.sum(row["TotalGroupProfit"]) | ALL |
SDProfitPerc = (row["PROFIT"]/row["ProfitSum"])*100(部門內佔比)DProfitPerc = (row["ProfitSum"]/row["TotalGroupProfit"])*100(部門在群組佔比)

本教程完整示範彙總/分組報表的參數化、紅綠燈、動態排序、TOC 導航、多層次兩遍計算。第 4 部分將進階講解報表鑽取、圖表互動、報表範本複用等高階主題。