司在做web项目时,前端的数据展现及分析通常由web报表工具实现。市场上的报表工具比比皆是,如何评估选择也是各个开发商的必修课。
本篇文章主要对三种典型报表工具进行功能对比:birt报表、润乾报表、smartbi报表。其中,birt代表了国外开源报表软件,而国内报表软件则以润乾报表和smartbi报表为代表,两者又可以从功能实现方式上进行划分,润乾报表是类excel的报表开发工具,smartbi则是基于excel的报表开发工具。选择这三种报表软件可以涵盖开源、商用以及不同的实现机制,个人认为是具有一定参考意义的。
一 报表工具介绍
1. birt报表
birt是一个Eclipse-based开放源代码的报表系统,它主要是用在基于Java和J2ee的web应用程序上。birt主要由两部分组成:一个基于Eclipse的报表设计器和一个可以添加到应用服务器的运行组件。
Birt报表设计界面如下图所示:
2. smartbi报表
Smartbi报表以“真Excel”为最大特色,用户在Excel插件的帮助下即可完成数据分析应用的设计,并发布到WEB应用中。
Smartbi报表设计界面如下图所示:
3. 润乾报表
润乾报表为常见的“类excel”设计,非线性报表模型的实现与应用使开发中国式复杂报表变得更加简便高效,支持与Java项目的无缝集成以及跨系统调用。
润乾报表设计界面如下图所示:
二 功能支持
功能描述 |
Smartbi |
润乾报表 |
birt报表 |
是否提供永久授权 |
✔ |
✔ |
不需要授权 |
是否限制用户数 |
个人版限3个用户,企业版无限制 |
无限制 |
无限制 |
图形化展现 |
✔ |
✔ |
✔ |
报表管理中心 |
✔ |
✔ |
无 |
移动端 |
✔ |
✔ |
无 |
填报 |
✔ |
免费版不支持,填报及以上版本支持 |
不支持 |
导出 |
Excel、PDF、Word |
Excel、PDF、Word |
Excel、PDF、Word |
打印 |
Flash打印 |
applet打印、flash打印、PDF打印 |
PDF打印 |
仅从功能支持性来看,smartbi和润乾报表涵盖了报表的基础功能,而birt则缺失了国内需求的一些必要功能,如填报、权限控制等。
三 成本
成本主要包含以下几个方面:
1.采购成本
Birt是国外开源产品,没有采购成本;
Smartbi提供了个人永久免费版和企业商业版,前者有3个用户数限制,而企业版价位在行业内为中间偏上;
润乾报表提供了企业免费版和其他商用版本,前者没有用户数限制,后者在官方报价单上可以看到价位是行业内偏低的。
2. 报表开发成本
1)学习成本
Birt在国内可查到的资料很少,且没有BIRT的官方技术交流平台和技术支持人员,学习探索过程中的成本是比较高的;
Smartbi和润乾报表的学习资料和演示视频很多,中文操作界面使用者更容易上手,且都提供了官方技术支持、论坛、交流群等方式,能够帮助用户快速解决问题。
2)图表开发成本
根据掌握的资料来看,birt支持简单的报表和图形开发,对于中国式复杂报表需要耗费的资源比较多,成本较高;
Smartbi和润乾报表都支持较为复杂的报表开发,且都支持填报数据入库。在图形支持方面,润乾报表对于echarts的兼容性更好些;
3)二次开发成本
Birt本身是开源产品,提供的接口很丰富,功能很强大,但在一定程度上不适用于国内需求,对技术人员能力要求比较高;
Smartbi属于一款比较完善的报表系统工具,开放的接口比较少;
润乾报表提供了丰富的二次开发接口,可以在更大程度上给予用户定制开发的空间。
3.维护成本
Birt无技术支持,相对维护成本较高,而smartbi和润乾报表均提供了官方技术支持入口,便于协助用户解决实际开发过程中的问题。
个人认为润乾报表相当于结合了开源与商用两者的优点,成本相对较低,适用范围比较广。
四 性能
1. 大数据量展现
birt报表是根据sql语句从数据库中查出所有的数据,然后一次性把数据加载完存到硬盘缓存分页展现。虽然当用户下次查询同样的数据时,可以读取缓存,不用再读数据库,但是性能上仍然差强人意。论坛对此问题的解决方法不甚详细,因此具体二次开发实现时问题还是比较多的。
Smartbi一般来说都是一次性从数据库中读取数据的,不提供真分页功能;
针对大数据量清单报表展现,smartbi也提供了对应解决方案——数据提取功能,先将数据抽取到高速缓存库中,后面再从缓存库中取数,从而提高系统性能,但是操作上相对比较繁琐。
润乾报表提供了大报表功能,可以实现真分页效果,该功能中取数和呈现采用两个异步线程,可以支持海量清单报表的秒级查询,很大程度上能同时降低内存以及浏览器的压力。
2. 复杂数据计算
birt报表对于复杂数据计算逻辑一般是三种处理方式:sql、联结数据集、Java数据集。
Sql:数据处理越复杂,sql相对越长,编写起来,对于技术人员和维护人员都是比较大的工作量;
联结数据集:是主要针对异构数据源关联取数提供的解决方案,由于它是在BIRT报表数据引擎内部执行的,所以无法达到数据库的运算效率,性能是相对比较低的;
Java数据集:可以通过Java代码对数据做一些处理,一定程度上可以缓解计算性能问题,但是对于开发人员要求比较高。
smartbi报表针对复杂数据处理主要通过原生sql、存储过程两种方式实现。
同样的,sql会存在编写和维护的问题,而存储过程一般会涉及很多中间表的处理,对于数据库资源占用比较大。
润乾报表则提供了多种处理方式供用户选择:sql、存储过程、Java数据集、脚本(SPL)。
其中前三者的在前面已经分析了,而SPL是润乾报表独有的,可以通过简单的函数调用实现复杂的数据处理,例如跨库关联取数实现只需要connect、query、join等几个函数即可实现;同时对于大数据量关联取数计算也有对应的解决方案,例如可以通过cursor函数分段取数等。
个人认为,对于大数据量及复杂数据处理,润乾报表的机制是相对比较完善的。
五 美观性
birt报表的美观度主要通过接口进行二次开发实现,工作量相对较大,而且维护成本也比较高;图表的支持性相对来说也是比较欠缺的。
Smartbi报表是在excel的基础上开发的,可以使用excel所有内置统计图,并在此基础上增加了部分echarts统计图类型支持;表格样式设置的支持性也是比较好的;设置操作上的人性化处理是比较赞的。
润乾报表是类excel设计,涵盖了常见样式设置,且支持css直接引入使用;统计图内置了常见图形类型,用户可以直接通过简单操作实现,同时也提供了echarts配置入口,用户可以通过编写js实现图形绘制,开发人员只需了解echarts的相关接口使用方法即可。
六 总结
总体来说,国外开源报表耗费的人力、时间相对比较多,对技术人员的要求也比较高,成本和开发周期都是需要考虑的因素。如果项目中报表比较简单且无填报需求,那么可以考虑国外开源报表。
excel报表开发工具兼容excel的所有设置,对于excel比较熟悉的开发人员来说是福音,但相对的,它也要受限于excel本身的功能。Smartbi在人性化操作上做的是比较好的,也是相对比较完善的一套报表平台,不过开放的接口较少,同时对于复杂的大数据量数据处理性能还有待提升。
润乾报表的界面比较朴素,当时功能比较强大。对于技术人员的要求属于中等;成本上相对较低。目前开放的接口也比较多,属于半开源产品,并且配有官方技术支持,二次开发也比较有保障。同时大数据量数据处理也有特有的解决方法,独创的SPL可以兼容其他任意一款报表产品。