首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

BIRT + Eclipse 打造企業級報表系統:從 Derby 資料到線上分析

     編輯:Java 相關知識

零代碼生成專業報表:BIRT RCP 設計器 + Derby + Geronimo 全棧實戰

Business Intelligence and Reporting Tools (BIRT) 是 Eclipse 生態系中最成熟的報表引擎。本教學以「銀行交易分析系統」為例,完整演示從資料庫建模、報表設計、Web 應用開發、報表引擎嵌入到線上即時分析的端到端流程。

技術棧版本鎖定

  • BIRT RCP Report Designer 1.0.1 (含 Eclipse 3.1, GEF 3.1, EMF 2.1, JDK 1.4.2)
  • BIRT Report Engine (執行時檢視報表)
  • Apache Geronimo M5 (應用伺服器 + 內建 Derby Network Server)
  • IBM DB2 JDBC Universal Driver (連接 Derby)
  • Ant (建構 WAR)

第一階段:Derby 資料庫建模與種子資料

1. 啟動 Geronimo 內建 Derby Network Server

# 將 DB2 驅動放入 Geronimo 倉庫
cp db2jcc.jar db2jcc_license_c.jar /repository/org.apache.derby/jars/

# 啟動 Geronimo
java -jar /bin/server.jar

2. 使用 ij 工具建立 BANK 資料庫與交易表

java org.apache.derby.tools.ij
ij> connect 'jdbc:derby:net://localhost:1527/BANK;create=true;user=bankuser;password=bankpass;';

ij> create table transactions (
    transactionid integer not null generated always as identity (start with 1, increment by 1),
    employeeid integer not null,
    employeetitle varchar(50),
    transactiondate varchar(10),
    transactiontype varchar(50),  -- 'D'=Deposit, 'W'=Withdrawal, 'T'=Transfer
    amount integer,
    transactionSrc varchar(50),
    transactionDst varchar(50)
);

ij> -- 插入 20 筆測試資料 (略,見原文清單 2)

第二階段:BIRT RCP 設計器報表開發

1. 建立第一份報表專案

  • File → New Report → bank1.rptdesign → Blank Report
  • 熟悉核心視圖:Palette (拖拉元件)、Data Explorer (資料源/資料集/參數)、Outline (階層結構)、Property Editor (樣式屬性)、Layout/Preview/Code 編輯器分頁

2. 配置資料源與資料集

資料源:JDBC Data Source → 管理驅動加入 db2jcc.jar + db2jcc_license_c.jar → URL: jdbc:derby:net://localhost:1527/BANK; → 測試連線成功
資料源配置

資料集 1:moneyPerEmployee (每位員工總交易金額)

SELECT employeeid, SUM(amount) AS totalAmt
FROM transactions
GROUP BY employeeid

資料集 2:transactionTypePerDate (每日各交易類型金額)

SELECT transactiondate, transactiontype, SUM(amount) AS totalAmt
FROM transactions
GROUP BY transactiondate, transactiontype

完成的資料集

3. 設計報表版面:標題 + 兩張圖表

報表標題:拖拉 Label → 文字「BANK OF MARS THE PLANET」→ 粗體、特大、置中、淺藍背景
報表標題預覽

圖表 1:長條圖 — 員工交易金額排名 (使用 moneyPerEmployee)
類型:Bar Chart → 子類型最右 (立體) → X 軸:Employee ID → Y 軸:Amount → 數值定義:row["EMPLOYEEID"], row["TOTALAMT"]
長條圖輸出

圖表 2:折線圖 — 每日交易類型趨勢 (使用 transactionTypePerDate,含 Series Group Key)
類型:Line Chart → 子類型最右 → X 軸:Date → Y 軸:Amount → Series Group Key: row["TRANSACTIONTYPE"] (關鍵:將 D/W/T 三類型分組顯示) → 數值定義:row["TRANSACTIONDATE"], row["TOTALAMT"]
折線圖輸出 (含系列分組)

第三階段:Web 應用開發 (交易錄入 Servlet)

1. Servlet 介面與資料存儲

  • BankingServlet.java:doGet() 產生 HTML 表單 (員工編號、職稱、日期、類型、金額、來源/目的帳號)
    交易錄入表單
  • doPost():參數驗證 → DB2 Driver 連接 Derby → PreparedStatement 批次插入 → 回饋結果

2. Geronimo 部署描述檔

geronimo-web.xml:宣告 DB2 驅動依賴、Context Root /birtDemo
web.xml:Servlet 映射 /transaction.html

3. Ant 建構 WAR

<target name="war" depends="compile">
  <war destfile="birtDemo.war" webxml="WEB-INF/web.xml">
    <zipfileset file="WEB-INF/geronimo-web.xml" prefix="WEB-INF"/>
    <classes dir="${dest.dir}"/>
  </war>
</target>

4. 部署驗證

java -jar /bin/deployer.jar --user system --password manager deploy birtDemo.war

瀏覽 https://localhost:8080/birtDemo/transaction.html 錄入測試資料
錄入新交易
交易成功回饋

第四階段:BIRT 報表引擎嵌入 Web 應用

1. 合併 BIRT Viewer WAR 與應用 WAR

  1. 解壓 birt.war (修正 Web Viewer Example Bug)
  2. 解壓 birtDemo.war
  3. 合併 web.xml:將應用 Servlet 定義追加到 web-template.xml 的 @generate@ 標記處
  4. 複製 bank1.rptdesign 到合併目錄
  5. 重新打包 jar -cf birtDemo.war *

2. 重新部署合併版

java -jar /bin/deployer.jar --user system --password manager redeploy birtDemo.war com/ibm/eclipse/birtDemo

3. 線上檢視報表

  • HTML 格式:https://localhost:8080/birtDemo/frameset?__report=bank1.rptdesign
  • PDF 格式:在上述 URL 附加 &__format=pdf
    Geronimo 中檢視報表

第五階段:即時資料驗證

  1. 錄入新交易:12-10-2005 新增 $50,000 提款
    新增大額提款
  2. 報表頁面 Shift+Reload 強制刷新
  3. 觀察折線圖 12-10 當日 Withdrawal (W) 線條大幅跳升
    報表即時反映資料變化

架構總結與擴展建議

層級技術選型替代方案
報表設計BIRT RCP DesignerBIRT Web Designer (Web 版設計器)
報表引擎BIRT Report Engine (嵌入 Servlet)獨立 BIRT Viewer WAR
資料庫Derby Network Server (Geronimo 內建)MySQL, PostgreSQL, DB2, Oracle
應用伺服器Geronimo M5Tomcat, JBoss, WebSphere, WebLogic
建構工具AntMaven, Gradle

進階主題:報表參數化查詢、多資料集聯動、圖表互動鑽取、排程匯出 PDF/Excel、整合 Spring Security 權限控制、集群環境下報表引擎共享。


完整源碼包含 BIRT 設計檔、Servlet 原始碼、Ant 建構檔、Geronimo 部署描述檔,可直接導入 Eclipse 運行。

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