Related Posts Plugin for WordPress, Blogger...

[介紹] eclipse 下的報表(Report)套件 BIRT

image BIRT(Business Intelligence and Reporting Tools)是基於 eclipse 平台的報表製作工具,主要的功能是可以產生一些制式報表而不需要程式語言底子,讓資料呈現(產生報表)更簡單快速;用簡單一點的說法就是,做報表畫面就像用 Word 一般,資料處理就像用 Excel 一般,縱使 BIRT 是 Java Base 的一套 Tool,也可以讓不懂 Java 的人輕鬆做出專業的報表,需要進階一點的互動、動態報表,那也只需要 JavaScript 來輔助,倘若需要更進一步將報表做成 Report System,才需要懂得一些 Java(Appliccation Report System)或 JSP(Web Report System),但報表開發的精髓是在內容面,而不是只要一次性開發的框架,所以 BIRT 是可以充分讓美工、DBA、Programer…可以互相支援協同的 FrameWork。

原理 雖然 BIRT 是 Java 開發的 Tool,但是這不表示 BIRT 產生的 Report 檔是 Java Base 的,看 Report 原始碼應該是用某種 XML 格式來儲存,XML 本身並沒有邏輯處理功能,所以 Report 中使用的邏輯處理,是將寫好的 JavaScript 存到 Report 檔(XML)中,執行 Report View 的時候,再由 Java Base 的 BIRT 呼叫 ScriptEngineManager 這個 Library 來處理,這也就是為什麼寫 BIRT Report 不需要會 Java,把寫 Report 這件事交給懂資料的 DBA 或者懂 JavaScript 的美編,甚至多種專長角色互相支援協同,這樣產生出來的報表,品質應該無懈可擊,至於 BIRT 的 Report View 本身就是個準的 Java Class,因此要 Deploy 到一般 JavaSE 的 Appliccation 或網頁的 Applet,還是要 JavaEE 架構的 Web Appliccation 都是沒有問題的,當然也保有跨平台的特性,客戶端不需要安裝額外特殊的元件。 

提醒
用過了 BIRT 與 Crystal Report 這兩套報表工具後,不得不提醒要採用任何一套技術的決策者,是否真的需要 Report System 的功能,假如單純只是要呈現表格、Excel 匯入匯出,其實有很多更有效率的 Solution,而 Report 就單純是 Report,不要把一堆有的沒的資料全部倒進 Report System 的資料庫,想說要什麼報表就有什麼,而沒考慮到無限發散效率問題,否則不管哪套報表工具,都會讓 User 感覺 Excel 比較好用,至於採用 Report System 的時機,個人覺得一是分頁二是列印,有這兩者其一的需求的,就不要自以為是的手工打造,否則將會是無盡深淵,至於要用哪套報表工具,個人覺得各有所長與所短,有大量 Client 需要部屬或者 Web Base Client 又或 Client 環境複雜難以統一,就建議使用 BIRT,否則 ActvieX 的安全性設定、授權問題、每台 Client 的環境設定就會搞得天昏地暗。

BIRT 介紹 先大致簡略說明 BIRT 有那些內建功能,安裝設定部份待日後再細說,由於是基於 eclipse 發展的工具,看起來就很 eclipse…
image

Data Explore:
Data Source image 資料來源,支援從檔案、資料庫、Scripted、Web Services、XML,一張報表可以有多個 Data Source 也就是多個資料來源
Data Sets image 資料集,從資料來源取得資料集的方式(這邊是選 JDBC 資料庫為來源,所以有 SQL Select Query 的取法)。
Report Parameters image 參數,支援使用者輸入 (Report 呈現前彈出參數輸入視窗),也支援從 URL 隱含傳入,使用 BIRT 使用者輸入介面時,參數可以是動態產生的 (如:從資料庫撈某個欄位當顯示名稱,某個欄位當值)。
Data Cubes image 

下面的例子就是,將原始資料的[產品]欄位當作 Cross Tab 的縱向欄位,[站點]欄位當作橫向欄位,兩個欄位在 Cross Tab 都是動態生成,而[數量]欄位的值是自動 Mapping 進適當的位置,當資料來源多一個產品 "P5" 時,Cross Tab 就會多一列,當多一個站點 "C" 時,則多一欄。
image
Data Cubes,搭配 Cross Tab 物件可以讓資料橫列兩個方向動態生成 (Layout 欄位數依據資料而定,非 Hard Coded 幾個欄位)。

基本上大部分標準的 Chart 跟 Report 常用的表都能輕鬆做出來:
image image

主要元件列表 (上左圖),比較值得一提的是 Chart 跟 Aggregation:
圖(Chart) 方面該支援的標準 Chart 都有了 (上右圖),多重 Y 軸也沒問題,呈現圖檔的格式包含 PNG、JPG、BMP、SVG,呈現方式可以 2D、3D,X、Y 也可以對調 (Flip)這樣圖看起來會轉 90 度。
函數(Aggregation) 這個元件必須要是在 Table 裡,處理對象要是其中的一個欄,Function 有:
SUM、RUNNINGSUM、COUNT、RUNNINGCOUNT、COUNTDISTINCT、MAX、MIN、AVG、WEIGHTEDAVG、MOVEINGAVG、MEDIAN、MODE、STDDEV、VARIANCE、FIRST、LAST、RANK、PERCENT-RANK、PERCENTILE、QUARTILE、PERCENT-SUM、IS-TOP-N、IS-TOP-N-PERCENT、IS-BOTTOM-N、IRR、MIRR、NPV、RUNNINGNPV
這是在 2.2.2 版 BIRT 裡有的,相信未來只會多不會少。

在大份份元件中有 Expression Builder 用來表示動態內容,邏輯使用 JavaScript 程式語法。
image 

以上就是 BIRT 功能概觀介紹,有興趣先瞭解更多可以到 BIRT Project 官方網站,不然要等小弟我日後有機會才能慢慢介紹了,另外個人覺得 BIRT Project Plan 也是很值得參考的地方,點選每個版本 New & Notable 就知道 BIRT 有哪些功能,像 2.3 版的 SQL Query Builder Prototype 就是本人相當期待且已實現的功能。
image
張貼留言