BIRT

BIRT

BIRT (Business Intelligence and Reporting Tools), 是為 Web 應用程式開發的基於 Eclipse 的開源報表系統,特別之處在於它是以 Java 和 J2EE 為基礎。BIRT 有兩個主要組件:基於 Eclipse 的報表設計器,以及部署到套用伺服器上的運行時組件。

BIRT介紹

BIRT 也提供了圖示引擎讓你能為套用增加圖示。
BIRT 當前發行的版本是 3.7.0。可通過下載使用。
有了 BIRT,你可以為應用程式構建豐富的報表。
列表 - 列表是最簡單的報表。當列表變長時,你可以把相關數據增加到同一分組(基於客戶的訂單分組,基於供應商的產品分組)。如果數據是數字類型的,你可以輕鬆的添加到“總數”、“平均”、或其他匯總中。
圖表 - 當需要圖表表現時,數字型數據比較好理解。BIRT 也提供餅狀、線狀以及柱狀圖示等。
交叉表 - 交叉表(也叫做十字表格或矩陣)用兩種維度展示數據:sales per quarter or hits per web page。(交叉表在 1.0.1 中沒有提供,但計畫在將來提供。)
信函和文檔 - 通知、信件、以及其他文本文檔都很容易通過 BIRT 方便建立。文檔包括正文、格式、列表、圖表等。
混合報表 - 很多報表需要聯合以上所有的報表構成單一文檔。例如,一份客戶聲明會列出客戶所需要的信息,為當前促進(promotions)提供文本,以及提供並行的出帳和入帳列表。一份財政報表將包括聲明、圖表、表格,所有這些都將進行全方位的格式化,來匹配共有的配色方案。

剖析一份報表

BIRT 報表包含四個部分:數據、數據轉換、業務邏輯、陳述。
數據 - 資料庫、Web 服務、Java 對象,這些都可以作為 BIRT 報表源。1.0.1 版本提供 JDBC 支持,也支持利用編碼來獲取其他地方的數據。BIRT 的 ODA(Open Data Access) 框架允許任何人構建新的 UI 以及運行時支持任何類型的表格式數據。未來,單一報表可包含從任意多個數據源獲取數據。
數據轉換 - 報表通過對數據的分類、統計、過濾以及分組來適套用戶需求。當然,資料庫能實現這些功能,當遇到普通檔案和 Java 對象時 BIRT 必須以 "simple" 數據源方式處理。BIRT 允許複雜的操作,比如總合分組、整體總計的百分比,等等。
業務邏輯 - 真實世界的數據很少提供你理想的結構良好的報表。許多報表要求用具體邏輯把原始數據轉換成用戶的有用信息。如果該邏輯僅僅用於該報表,你可以用 BIRT 的 JavaScript 腳本支持。如果你的程式中已包含這些邏輯,你可以調用已有的 Java 代碼。
表現 - 一旦數據準備好了,你可以在很大的範圍內選擇表現形式。表格、圖表、文字等等都可以。單一數據集可以有多種方式表現,而單一報表可以表現多個數據集。

J2EE 套用中的 BIRT

BIRT 報表引擎以 JAR 檔案方式打包,可以方便的添加到你的 J2EE 套用中。報表引擎是一系列的 POJO(Plain Old Java Objects),便於你可以在 JSP 頁面集成報表。
BIRT 與你的套用有四個主要集成點:
UI 參數 - 多數報表允許用戶指定一些輸入,這些數據叫做"報表參數"。例如,客戶報表要求顯示客戶數據。你的參數頁面可能是靜態的:為每個報表進行用戶定製設計。或者,可以使用參數元數據提供的動態頁面,以便該單一頁面為所有的報表提供服務。
運行報表 - 用戶提交表單參數時,你的 web 套用通過這些參數向 BIRT 報表引擎說明讀取哪個報表設計檔案,並讀取數據,再產生報表輸出。當引擎運行報表時 BIRT 的術語稱為"工廠"。
數據訪問 - 報表如何從你的套用獲得數據已在上面解釋了。Java 程式通常利用 Java 對象為 BIRT 工廠提供數據。
顯示 - 附加的 JSP 頁面,叫做閱讀器,允許用戶查看報表輸出。
一個報表應用程式包含一個參數頁,你可以為每個報表創建自定義的 UI,或者使用 BIRT 帶來的參數元數據提供單一報表來處理多種不同報表。

樣品閱讀器

BIRT 項目提供一個樣品 "viewer" 來幫你起步。樣品閱讀器常被用於在 Eclipse 中預覽報表:BIRT 內置一個 Apache Tomcat 伺服器,每次預覽報表時調用。閱讀器也可被用於任何與 JSP 兼容的 J2EE 伺服器。
BIRT 的 1.0.1 版本提供單一頁面的 web 輸出。計畫在將來的版本中提供多頁面輸出,而且閱讀器 UI 也將提供多頁面之間的導航功能。
報表設計
BIRT 套用開發從報表設計開始。基於 Eclipse 外掛程式提供多種快速構建報表工具
數據瀏覽器 - 把你的數據源(連線)以及數據集(查詢)組織起來。數據集編輯器允許你測試數據集,以確保報表接收數據的正確性。
布局視圖 - 所見即所得編輯器為你的報表提供以拽方式來創建表現內容。包含一個標準報表條目調色板
屬性編輯器 - 以便利的格局表現大多數通用的用戶屬性使編輯更快速和容易。BIRT 也集成了標準 Eclipse 屬性視圖,為每個條目提供詳細的屬性列表。
報表預覽 - 你可以在任何時間採用真實數據測試你的報表。預覽視窗直接內嵌在 Eclipse 中。
代碼編輯器 - 在訪問數據以及報表生成或瀏覽時,腳本把業務邏輯添加給報表。在編輯腳本時代碼編輯器提供標準的 Eclipse 特性:語法加色、自動完成等等。BIRT 用很簡單的腳本來表達,expression builder 能更容易的創建這些表達。
略圖 - BIRT 報表被組織為一個樹型結構作為整體報表的根,並且為樣式、報表內容、數據源、數據集、報表參數等分類。略圖視圖提供你整個報表結構緊湊的預覽。
Cheat Sheets - 學習新工具永遠是種挑戰,但是 Eclipse 提供一種創新方案:cheat sheets。它們是一些幫助你完成新任務的文檔。

數據定製

報表通常為要表現的數據添加業務邏輯。BIRT 提供多個工具來完成這一操作:
欄位計算-資料庫為存儲組織數據,但這些數據通常為結合表現層而預先整理好。欄位計算讓你能定義基於業務邏輯的附加數據集欄位。這種邏輯是一個簡單的語法、腳本或調用一個已有的 Java 邏輯。
輸入以及輸出參數-許多數據源都支持參數:在查詢時傳入或傳出數據的能力。比如,SQL Select 語句可包含輸入參數。存儲過程既有傳入又有傳出參數。
欄位元數據-當數據源提供的名字是 unintuitive 的,你可以提供欄位別名。
過濾 - 有些數據源,尤其是 SQL,提供良好的內置過濾特性。然而,有些數據源(單純的檔案,應用程式對象)卻沒有提供過濾特性。另外,過濾器條件是定義在腳本或 Java 代碼中的。你可把過濾器定義為報表的一部分,BIRT 引擎會自動調用它們。
腳本化數據集 - 有些報表需要訪問專門或不常用的數據。你可以在 Java 或腳本創建訪問,利用腳本化數據集可在報表中集成這些邏輯。

條件格式化

有些報表有著固定的格式,其他的卻需要條件格式化。例如,某報表列出了交易記錄來表現不同的銷售與利潤之比。或者,一個客戶服務報表要按照不同規則進行色彩顯示。BIRT 提供多個條件格式化特性:
條件可見度 - 你可以根據數據隱藏報表元素。在上述的交易報表中,你可以創建銷售和交易收入兩部分,接著隱藏報表指定記錄中不需要的部分。
值映射 - 資料庫數據通常使用代碼值:M/F 代表男性或女性,1/2 代表銷售和收入,等等。值映射讓你定義一個從資料庫值到顯示值的映射。例如,我們可把值“1”對應到“Sale”,把“2”對應到“Return”。
加強 - 簡單的標識可讓你對特定報表套用樣式。例如,在客戶服務報表中,我們可以使用綠色表示上一的計畫,紅色表示下一計畫。

腳本

BIRT 提供基於 JavaScript的腳本。JavaScript 經常作為客戶端腳本語言,但是它也可以用於用於表達業務邏輯。特別的,JavaScript 能與你的現有 Java 邏輯進行良好集成,能非常輕鬆地從 BIRT 報表調用業務邏輯。
BIRT 提供從 JavaScript 對象訪問報表對象模型(Report Object Model)的整套方案:同時表現報表設計和運行時的狀況,允許報表的完全控制處理甚至最複雜的報表格式化工作。

項目管理

BIRT 集成了 Eclipse 項目管理特性來組織相關報表。BIRT 也可以與 Eclipse CVS 協作進行源碼管理。BIRT 的 XML 報表設計格式讓它能容易的比較兩份報表,或者兩個不同版本的相同報表,並跟蹤變更。
樣式
任何設計 web 頁面的人都知道有時會反覆使用相同的樣式。CSS 允許 web 設計者從內容中提取樣式信息,並復用樣式。
BIRT 提供類似的特性。當然,BIRT 樣式也是基於 CSS 的,這樣使得網頁套用開發人員能容易得設計 BIRT 表現形式。BIRT 樣式可堆疊,允許你在一個地方設定樣式後套用到所有報表或報表的一部分或單一報表中。

典型的套用中會包括許多有關聯的報表。一個簡單的客戶套用將包括一個按照字母排序的客戶列表、按照地理位置分類的客戶群,為客戶指定的銷售代表,客戶身份篩選等等。總之,用戶不停的地變化報表以解決具體業務需要。
這樣一來,最終的報表套用將包含多組相關報表。相同的數據源、樣式、業務邏輯、報表條目。
將來的 BIRT 版本將包含組織這些共享資源的支持庫。這些庫可包含任何報表元素,比如樣式、數據源、報表條目、腳本等等。

國際化

全世界都可以訪問你的 web 應用程式。BIRT 為國際化和本地化提供良好的支持。
文本本地化 - 你可以建立一份把字元串自動變成用戶本地語言顯示的簡單報表。所有的表單和報表文本都能以標準的 Java 本地化規則進行翻譯。在運行時,BIRT 使用資源 key 找出文本的正確翻譯。
本地化 - BIRT 提供 locale-aware 格式化數據,意味著對於美國用戶的日期數據可以以 mm/dd/yy 的格式出現,而歐洲用戶則是 dd-mm-yy 格式。
動態格式化 - 中文文本非常緊湊,德文有時又有點冗長,而英文正好是中等大小。BIRT 自動調整報表條目的大小來適合其中的內容,避免每次翻譯都要進行報表測試。

擴展性

報表應用程式的範圍是十分龐大的,BIRT 團隊不能為每個套用提供很具體的特性。可利用 BIRT 腳本來擴展 BIRT,另外還可構建 BIRT 擴展外掛程式到 BIRT 中。

數據訪問

BIRT 提供 ODA(Open Data Access) 框架來支持自定義數據訪問方法。數據訪問的範圍還包括一個獲取數據的運行時組件。也包括構建自定義查詢的自定義設計時 UI。例如,打包後的應用程式可以讓 ODA 構建數據訪問 UI 並運行在自己的數據模型中。

輸出格式

BIRT 2.3.0 支持輸出到 HTML,PDF,Excel、RTF(Rich Text Format)、SVG(Scalable Vector Graphic)、圖像、等等。BIRT 在今後會提供更多輸出格式。開發者還可利用 BIRT 引擎接口添加轉換器以達到目的。

相關詞條

相關搜尋

熱門詞條

聯絡我們