我们始终在关注替代价格不菲的商业软件的开源软件,想知道开源报表工具能不能与久负盛名的商业产品相媲美。为了这次测评,我们选择了三款常用报表工具: 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 更改配置文件和多个设置对于一款其他方面非常易于使用的产品来说有点过于笨拙了。