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

BIRT 進階圖表開發:打造具備交互、國際化與無障礙的專業報表

     編輯:Java 相關知識

BIRT (Business Intelligence and Reporting Tools) 提供強大的圖表引擎,支援鑽取、高亮、顯示切換、工具提示、自訂腳本等交互特性,並內建國際化與無障礙支援。本教程以三份銷售分析報表為例,手把手演示從專案建立、資料集設計、圖表配置、交互啟用、報表鏈接到多語系與無障礙增強的完整流程。

報表套件概覽

  1. 年度總銷售報表:長條圖顯示各產品年銷售額,點擊條形鑽取至趨勢報表。
  2. 產品銷售趨勢報表:折線圖顯示產品隨時間銷售變化,滑鼠懸停節點顯示工具提示,點擊鑽取至消費者報表。
  3. 消費者分布報表:餅圖顯示消費者購買分布(圖例懸停高亮、點擊彈窗顯示金額),區域圖顯示各消費者隨時間購買量(圖例點擊切換顯示/隱藏)。

準備工作:專案、模板與資料源

  1. 建立 BIRT 專案 MyReports。
  2. 建立空白報表 overall.rptdesign,插入 1欄3列 Grid,首列放標題 Label(字體、顏色、背景樣式化)。
  3. 建立資料源 MyDataSource 連接 Classic Models 範例資料庫。
  4. 複製模板為 trend.rptdesign、customers.rptdesign。

報表一:年度總銷售(長條圖)

資料集 SQL

SELECT PRODUCTNAME,
       SUM(PRICEEACH * QUANTITYORDERED) AS sales
FROM ORDERS, ORDERDETAILS, PRODUCTS
WHERE ORDERS.ORDERNUMBER = ORDERDETAILS.ORDERNUMBER
  AND ORDERDETAILS.PRODUCTCODE = PRODUCTS.PRODUCTCODE
  AND PRODUCTS.PRODUCTLINE = 'Classic Cars'
GROUP BY PRODUCTNAME

圖表配置要點

  • 類型:Bar,勾選 Flip Axis(產品名橫向顯示)。
  • 綁定:X 類別 → PRODUCTNAME,Y 值 → sales。
  • 裝飾性:Series Color By Value Series,漸層填充;Y 軸格式加 $ 前綴;加入垂直網格線;隱藏圖例。

報表二:產品銷售趨勢(折線圖 + 工具提示 + 鑽取)

報表參數

新增參數 productname,資料集 SQL 中以 ? 佔位並綁定該參數。

資料集 SQL

SELECT PRODUCTNAME, (PRICEEACH * QUANTITYORDERED) AS sales, ORDERDATE
FROM ORDERS, ORDERDETAILS, PRODUCTS
WHERE PRODUCTS.PRODUCTCODE = ORDERDETAILS.PRODUCTCODE
  AND ORDERS.ORDERNUMBER = ORDERDETAILS.ORDERNUMBER
  AND PRODUCTS.PRODUCTNAME = ?

交互配置

  • Series Interactivity:事件 Mouse Over → 動作 Show Tooltip → 文字 "$" + row["SALES"] + " made on " + row["ORDERDATE"]。
  • X 軸標籤旋轉 -45 度避免重疊。
  • 隱藏圖例(單系列)。

報表三:消費者分布(餅圖 + 區域圖 + 多重交互)

兩個資料集

  • DistributionDataSet:消費者總購買額(餅圖用),GROUP BY CUSTOMERNAME。
  • CustomersDataSet:明細含 ORDERDATE(區域圖用),同樣綁定 productname 參數。

餅圖交互

  • Legend Interactivity:Mouse Over → Highlighting(對應扇區高亮)。
  • Series Interactivity:Mouse Click → Invoke Script → alert(valueData)(彈窗顯示金額)。

區域圖交互

  • X 軸標籤旋轉 -45 度。
  • Legend Interactivity:Mouse Click → Toggle Visibility(點擊圖例切換系列顯示/隱藏)。

報表鏈接:鑽取穿透

  1. 總銷售報表長條圖 Series Interactivity:Mouse Click → Hyperlink → Drill-through → 目標 trend.rptdesign → 參數 productname 必填,值取 row["PRODUCTNAME"] → Same Window。
  2. 趨勢報表折線圖同理鑽取至 customers.rptdesign。

國際化:資源包外部化文字

  1. 報表 Property Editor → Resources → 新增 messages.properties。
  2. 編輯屬性檔:overall.bar.title=Annual Product Sales Chart 等四組鍵值。
  3. 圖表標題編輯 → Externalize Text → Lookup Key 選對應鍵值。
  4. 多語系需建立 messages_fr.properties 等區域檔。

無障礙:替代文字

報表 Property Editor → Alt Text → 輸入圖表文字描述(如 "This is a bar chart that shows the overall annual sales for each product"),符合 WCAG 非文字元素等效描述要求。

預覽驗證

  1. Preferences → Report Design → Preview → 勾選 Enable SVG chart(啟用 SVG 交互)。
  2. Preview 標籤檢視三份報表,測試鑽取、工具提示、高亮、切換、彈窗等交互。

總結

BIRT 圖表引擎不僅提供豐富視覺化類型,更透過交互特性(鑽取、高亮、切換、工具提示、腳本)、裝飾性配置、國際化資源包、無障礙替代文字,支援構建專業級、企業就緒的分析報表。掌握這些進階技術,能將報表從靜態展示提升為動態決策工具。

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