哪款是你心目中最佳的開源報表工具?
我們始終在關注替代價格不菲的商業軟件的開源軟件,想知道開源報表工具能不能與久負盛名的商業產品相媲美。為了這次測評,我們選擇了三款常用報表工具: Eclipse BIRT 、 JasperReports 和 Pentaho 的社區 / 開源版本。我們的測評重心放在易用性、數據訪問、平臺支持、報表制作以及 Web 發布上。
我們發現,說到設計報表,這三款產品的可服務性都非常好,甚至達到了企業級標準。所有這三款工具都具有跨平臺功能,這讓它們適合大多數環境。最大的區別在于用來發布報表的方法以及最終用戶訪問它們的方式。
Pentaho 儼然是我們的寵兒,兩大強項是易于訪問一系列廣泛的數據源和易于發布報表,這兩項任務會讓報表管理員頭痛不已。 Pentaho 還有一個界面整潔、易于導航的 GUI 和一系列出色的社區附件。我們唯一的抱怨是,我們發覺報表設計器和服務器的性能都有點慢騰騰,即便我們提供了非常充足的資源。
JasperReports 號稱是世界上最受歡迎的開源報表引擎,我們能夠明白原因所在。無論在報表設計方面還是服務器方面,它都擁有豐富的功能特性。 Jasper 最近改用 JasperStudio 作為首選的報表設計;而且與 Pentaho 一樣,提供了與水晶報表( Crystal Reports )和 SQL Server 報表服務等商業產品不相上下的工具集。服務器有一個新穎的 Web GUI 以便訪問報表,還提供了用于設計報表的眾多模板,既可以設計 Web 報表,又可以設計打印報表。
Eclipse BIRT 提供了強大的報表設計功能,一款類似向導的單頁工具提供了制作新報表的核心功能。它還提供了逐步說明文檔,可以逐步帶你領略最常用的功能。 BIRT 通過其 API 提供了良好的應用程序整合功能,但它并不提供用于訪問報表的指定服務器產品。
至于從瀏覽器輕松調用報表,我們測試的這三款產品沒有一款提供了簡單直觀的解決方案。它們都需要相當全面的配置、設置各個權限等,之后才能在網頁里面查看報表。
為了解答這個問題:這些工具能不能取代企業界的商業產品,我們發現它們有這個潛力,只是你要明白一點:它們并不擁有商業產品的所有功能;可能需要具備更多的專業知識、花更大的力氣才能安裝和運行它們。
下面是每款產品的測評:
幾款開源工具的優缺點 |
|||
Jasper |
Pentaho |
Eclipse BIRT |
|
優點 |
內置模板,報表設計器很棒。 單行示例數據集讓用戶易于預覽報表。易于將報表發布到 Jasper 服務器。 |
易于將報表發布到服務器。新穎的服務器用戶界面、易于安裝和規范的說明文檔。提供了多個第三方插件。 |
出色的應用程序整合功能,強大的 報表設計器,內置了指導性的逐步說明文檔。 |
缺點 |
服務器 Web GUI 導航本可以做得更直觀一點。社區版缺少許多功能特性。 |
報表設計器和服務器方面性能有點慢騰騰。 |
沒有發布報表的指定服務器,充分 利用數據庫存儲過程和視圖中已有的業務邏輯的功能相當有限。 |
三者的共同點:需要全面的配置,才能在報表服務器環境外面嵌入 / 查看報表。 |
1.JasperReports
JasperReports 運行在 Java 1.6 或更新的版本上,具有跨平臺功能,支持 Linux 、 Windows 和 Mac 等平臺。我們在干凈安裝的 Windows 服務器上測試了 6.01 社區版,使用了與 JRE 版本 1.8 上的 Jasper ( Apache Tomcat 和 PostgreSQL )相捆綁的組件。我們還決定安裝捆綁的示例 PostgreSQL 數據庫,它含有報表所用的示例數據。
安裝后, Jasper 界面裝入到瀏覽器中, 你可以登錄、開始使用。我們先從默認的管理員登錄信息入手,然后創建了一個新的帳戶。我們發現,用戶界面很新穎,易于導航,非常整潔。由于我們安裝了示例 數據庫,立馬注意到,有幾個預先發布的示例報表以不同的類別列出來,既有基本的列表報表,也有較為復雜的報表類型(包括條形圖和餅狀圖)。
然而,為了制作自己的報表,你就需要報表設計器。在過去,首選的設計器一向是 iReport Designer ;雖然 Jasper 保證到 2015 年會支持 iReport Designer ,但它已宣布 JasperStudio 是 JasperReports 的“官方客戶軟件”。
掌握了這些信息后,我們下載了 JasperStudio 的最新版本( 6.0.4 )。基于 Eclipse 開發平臺,它可以作為 Eclipse 的插件來運行,也可以作為獨立式應用程序來運行。 Jasper Studio 能夠發布采用諸多常見格式的報表,比如 HTML 、 PDF 、 XLS 、 XML 、 OpenOffice 、 MS Word 、 RTF 、 CSV 及其他格式。與服務器一樣, JasperStudio 也提供跨平臺支持,在 Java JRE 上運行,不過需要完整的 Java SDK ,才能發布這家廠商所說的調用報表腳本小程序。
JasperStudio 的工作區布局不賴;凡是用過水晶報表或 SQL Server 報表服務等商業產品的人用起來都得心應手,因為它使用熟悉的術語和類似的布局。制作新報表時,報表向導為你提供了這個選項:從模板或空白報表開始入手,用于制作打印報表或 Web 報表。為了制作我們的第一個測試報表,我們制作了打印報表,使用了預制模板以及用示例數據庫構建的自定義視圖。我們使用 JDBC 驅動程序連接到 PostgreSQL 數據源, JDBC 驅動程序是安裝系統自帶的。
選擇了數據集后,你就可以選擇將哪些字段添加到報表,以及使用哪個或哪些字段進行排序。報表向導會按照它認為合理的順序來排列數據字段,不過一旦向導完成了一系列任務,我們就能自行對報表做些自定義改變。
我們能夠找到商業報表制作器理應擁有的幾乎所有工具,從基本的“日期”和“頁數”字段,到較復雜的特性(比如報表參數、自定義圖表和子報表),不一而足。可以預覽報表,看看它們看起來怎樣,沒必要將報表發布到服務器。
一旦報表設計完成,它就可以發布到 Jasper 服務器。這通過多步驟過程來完成:先選擇服務器(我們只有一臺服務器),然后瀏覽到想要發布報表所在的文件夾,之后選擇數據源。數據源可以是已經可以從軟件庫獲得的數據源,也可以是本地數據源。我們發布了報表后,回過頭來登錄到 Web GUI ,查看報表。報表以文件夾的方式組織排列,因而瀏覽起來一目了然。一旦在服務器上生成了報表,它就能導出成眾多格式。
JasperReports 提供了一款非常強大的報表解決方案,既借助服務器,又借助新的 JasperStudio 報表設計器。 Web GUI 處的導航可以做得更直觀一點;比如說,不是一眼就能看出你需要選擇報表項以便編輯。如果為打印報表和 Web 報表提供節省時間的預制模板,用戶只要在設計方面花極少的精力,就能夠開始順利地設計報表。我們還喜歡單行測試數據功能,讓你不用連接到數據源,就可以制作報表。
雖然將 Jasper 報表發布到 Jasper 服務器簡單直觀,但是在服務器框架外面(比如在網頁里面,或者作為應用程序的一部分,你不希望用戶在運行報表時非得提供登錄信息)訪問報表卻完全是另一碼事。雖然 Jasper 給出了提供匿名訪問的操作說明,但是步驟有點過于復雜。我們發現需要從 Web GUI 更改配置文件和多個設置對于一款其他方面非常易于使用的產品來說有點過于笨拙了。