首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> DB2 資料庫 >> DB2 教學

在 DB2 Data Warehouse Edition 中使用 BIRT 報表開發(三):彙總報表與分組報表進階實戰

     編輯:DB2 教學

系列定位與前置條件

本教程為「在 DWE Design Studio 中使用 BIRT 報表」系列第 3 部分,重點講解彙總報表(每月獲利能力)與分組報表(依部門分組獲利能力)的建立、部署與進階技巧:紅綠燈動態圖示、兩遍計算、目錄導航、動態排序。
前置需求:完成第 1 部分安裝 BIRT 2.1.1、建立 DWESAMP 資料庫與 V_SALES/V_SALES_GROUPED 視圖、WebSphere 6.0 部署 BIRT、可執行第 2 部分範例報表。

一、建立彙總報表:每月獲利能力報表

1.1 基礎結構與參數化查詢

  • 新增空白報表 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,方向皆為 Input

1.2 報表版面配置

  • 插入 List 元素,Header 區放入 Grid(1列3行),最右儲存格嵌入 HTML 表單,提供 Year/Month/StoreID 輸入框與 Update 按鈕,動態重跑報表
  • Footer 區拖入資料集自動生成表格,移除 StoreId 欄

初始報表大綱

初始版面

1.3 樣式重用與條件高亮

  • 從 DailySalesReport.rptdesign 複製 Header 與 report styles,套用至標題列與資料列
  • 交替列背景色提升可讀性
  • 條件高亮: PROFIT < 40 或 PROFITPCT < 25 時,該儲存格背景轉紅

1.4 紅綠燈動態圖示(Status 欄)

  • 新增欄位 STATUS,插入動態圖片元素
  • 運算式建構器 / onCreate 腳本雙重保障,依 PROFIT 與 PROFITPCT 閾值顯示:
條件圖示
PROFIT < 10 且 PROFITPCT < 25Red.gif
PROFIT ≤ 10 且 PROFITPCT ≥ 25Yellow.gif
PROFIT > 10 且 PROFITPCT ≤ 25Yellow.gif
PROFIT > 10 且 PROFITPCT > 25Green.gif

動態圖片設定

onCreate腳本

1.5 動態排序:依紅綠燈狀態排序

  1. 資料集新增兩個計算欄位 StatusA、StatusB(整數),邏輯與紅綠燈對應,分別對應升序/降序權重
  2. 隱藏兩欄
  3. 新增隱藏參數 sStatus(預設 GROUP)
  4. 表格排序鍵設為 row[params["sStatus"]],方向 Ascending
  5. 標題列放入 Sort.bmp / Up.jpg 圖片,設定超連結回呼報表並傳遞 sStatus=StatusA 或 StatusB

超連結排序參數

1.6 最終效果

最終版面

預覽效果

二、建立分組報表:依部門分組獲利能力

2.1 資料集與分組結構

  • 新報表 ProfitabilityByDeptReport.rptdesign,資料集同前(無 WHERE 子句)
  • 拖入資料集生成表格,刪除冗餘欄(StoreID、Year、Month、Group、Department)
  • 建立兩層分組:
  1. GROUP 層:Group On GROUP,TOC 項目綁定 Group Row,不重複標題
  2. DEPARTMENT 層:Group On DEPARTMENT,重複標題,TOC 自動生成

分組詳細設定

2.2 目錄導航 (TOC) 啟用

屬性編輯器 → Properties → Table Of Contents → 運算式建構器綁定分組欄位,報表部署至 Web 後左側自動顯示可摺疊目錄樹。

含TOC效果

2.3 部門排名顯示

  • DEPARTMENT Group Header 左側插入標籤「Department:」與資料元素 DeptRank
  • 運算式:Total.rank(row["DEPARTMENT"], true),Aggregation 選 ALL

2.4 參數化查詢復用

從彙總報表複製參數 pStoreId、pYear、pMonth 及 HTML 表單(修改 action 目標報表名),資料集加上相同 WHERE 子句並綁定參數。

分組報表初始版面

2.5 多層次聚合計算(兩遍計算核心)

層級欄位運算式Aggregate On
DEPARTMENT Group FooterPROFIT 等Total.sum(row["PROFIT"])DEPARTMENT
GROUP Group HeaderTotalGroupProfitTotal.sum(row["ProfitSum"])GROUP
Report FooterOverallProfitTotal.sum(row["TotalGroupProfit"])ALL
  • 細節列新增 SDProfitPerc = (row["PROFIT"]/row["ProfitSum"])*100(部門內佔比)
  • DEPARTMENT Group Footer 新增 DProfitPerc = (row["ProfitSum"]/row["TotalGroupProfit"])*100(部門在群組佔比)

最終版面

預覽無TOC

結語與下集預告

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

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved