BIRT

BIRT

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

功能介紹


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 代碼。
表現 - 一旦數據準備好了,你可以在很大的範圍內選擇表現形式。表格、圖表、文字等等都可以。單一數據集可以有多種方式表現,而單一報表可以表現多個數據集。

安裝與使用


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

報表設計


BIRT提供了面向HTML的設計架構和可視化的報表設計功能,包含一個功能強大的設計器和一個方便的閱讀器。用戶可以憑藉直覺,通過拖拉的方式創建報表,並能通過閱讀器進行方便的預覽。

設計器

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

閱讀器

BIRT 項目提供一個樣品 "viewer" 來幫你起步。樣品閱讀器常被用於在 Eclipse 中預覽報表:BIRT 內置一個 Apache Tomcat 伺服器,每次預覽報表時調用。閱讀器也可被用於任何與 JSP 兼容的 J2EE 伺服器。
BIRT 的 1.0.1 版本提供單一頁面的 web 輸出。計劃在將來的版本中提供多頁面輸出,而且閱讀器UI 也將提供多頁面之間的導航功能。數據源管理
報表通常為要表現的數據添加業務邏輯。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 版本將包含組織這些共享資源的支持庫。這些庫可包含任何報表元素,比如樣式、數據源、報表條目、腳本等等。

其他特性


BIRT報表還具有其他的一些特性,比如可方便地進行國際化,插件擴展,並且支持EXCEL,PDF,HTML等多種輸出方式。

國際化

全世界都可以訪問你的 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 引擎介面添加 轉換器以達到目的。