BIRT,全称Business Intelligence and Reporting Tools,是为 Web 应用程序开发的基于 Eclipse 的开源报表系统,它的特点在于以 Java 和 JavaEE 为基础;而在当下商用报表系统中,润乾报表也同样以Java为基础,并支持对J2EE系统的嵌入式部署。那么,它们之间有哪些不同呢?这里我们就对这两种报表系统进行一下对比分析。
初见报表
安装使用
BIRT的安装分为两种,一种是下载已经安装好birt的eclipseIDE环境,配置环境变量之后使用;另外一种是插件安装方法,需要配置环境变量,下载eclipse环境,然后再下载birt所需要的插件,将插件安装到eclipse中使用。
这两种安装方式,是eclipse环境中比较常见的,但操作起来比较复杂,而润乾报表在Windows系统中直接提供了.exe格式的安装包,不需要进行配置环境变量,只需要根据安装向导提示进行,即可完成安装。
学习途径
国内对BIRT报表的使用并不是很普及,教程也零散而不集中,并且国内几乎没有BIRT的官方技术交流平台和技术支持人员,因此如果用户在使用过程中遇到了难题,就只能自己通过网络查询解决。
而润乾报表作为商用软件,不但提供了持续更新的详细官方教程 ,更是在安装包中提供了丰富的实例。同时,关于技术交流、答疑部分,也可以在可以在官方的乾学院平台上进行交流沟通,另外还可以通过在线技术支持人员,第一时间获得问题的解决方案。
语言支持
BIRT做为国外开发的开源报表工具,虽然提供了中文插件的补丁包,但还是难免会有细节上的瑕疵,比如在表达式编辑器中输入中文,会显示乱码等。而在国内市场中,为了更加方便快捷的使用报表工具,一般都会倾向于选择“汉化”的报表工具,因此就不得不去搜索汉化版本的Eclipse,或者通过替换某些补丁文件来实现汉化,这个过程往往也复杂而麻烦。
而润乾报表,作为针对中国用户使用习惯开发的报表工具,界面语言天然就是中文,相关文档以及例子也都是中文,并且可以自然地支持中文数据库、中文报表。
Eclipse界面下的BIRT报表界面
润乾报表界面
深入了解
下面让我们打开设计器,通过制作一个简单的报表,来探索一下BIRT报表与润乾报表使用起来究竟有哪些异同吧!
新建报表
想要新建一个birt报表,首先我们要打开已经安装好birt的EclipseIDE环境,然后在File中选择【New】下的【Report Project】
创建好新的report项目后,点击右键新建一张以“.rptdesign”为后缀的报表文件
点击完成后,一张空白的报表文件就创建完毕啦!
Birt报表的新建有两步,而润乾报表新建报表只需要一步。
打开设置好授权的润乾报表设计器,点击工具栏的“New Report”图标
或者点击“File - New Report”
即可新建一张空白的报表。
另外,Birt报表在创建时必须要先创建Report项目文件,然后才能继续新建报表文件,并进行编辑、预览,这也是eclipse环境下常见的模式;而润乾报表生成的报表只有“.rpx”文件,简单清晰,方便转移备份,而且不需要占用额外过多的存储空间。
创建完成的新报表,在birt中是一张完全空白的报表,需要继续向其中添加表格;而润乾报表则是从一张表格开始,用户可以根据需求在这张表格的基础上进行增删改。
配置数据源
birt与润乾报表在配置数据源时,都需要新建数据源Data Source,然后再新建数据集Data Set,以便后续报表进行使用。
不同的是,润乾报表提供了常用的数据源驱动,存放在[安装目录]commonjdbc文件夹中,能够满足用户的大多数需求;而birt报表则需要自备数据源驱动,以便在配置数据源时选择。
润乾报表提供的驱动jar
制作报表
在配置好数据源并连接之后,我们就可以开始制作报表了。
首先看一下birt,在报表中插入一个表格,表格中的Header Row和Footer Row是不会自动扩展的,所以我们只能在Detail Row中添加需要扩展显示的数据。
将Data Set中的字段拖拽到Detail Row中,会自动在Header Row中填入字段名,这样一个最基本的网格报表就制作完成了。
我们再来看看润乾报表。
由于润乾报表在生成报表的时候就已经是一个表格了,所以我们只需要将需要使用的字段拖拽到表格中,并且编辑字段名,一个基本报表就可以完成了。
如果觉得输入字段名和拖拽字段太麻烦?润乾报表还提供了更为简单的制作报表方式——向导。
使用向导生成报表前不需要新建空白报表并设置数据集,而是只需根据向导的逐步提示进行选择,就可完成设置数据集的工作,最终生成一个自带边框的完整报表。
向导不仅可以生成网格报表,还可以生成分组报表和交叉报表。
可见,润乾报表提供了容易上手的向导操作,可以为用户省去手动编辑的时间;而birt方面就只能通过手动拖拽制作报表了。
样式调整
显然,仅仅制作出白底黑字的基础报表是远远不够的,用户在实现数据展示需求的同时,肯定要对报表的样式进行调整。
常规样式调整
BIRT报表中,调整样式需要选中所要设置的网格,在属性编辑器Properties Editor中,选择 General进行网格基本样式设置,包括Font、Size、Color、Background color等。
润乾报表中的常规样式设置位于设计器的顶端以及右侧,选中所要设置的网格,在工具栏编辑器中,选择进行网格的基本样式设置,包括字体、字号、字体颜色、网格背景色等。
特殊样式调整
除了常规样式的调整,报表中往往还有一些需要根据数据来动态设置的特殊样式需求,例如隔行异色。在BIRT报表中,将鼠标指在表格处,会在表格下方出现“Table”按钮,点击一下全选表格,再点击左边选择“Detail”行 切换到“Script”页,从下拉列表中选择“OnCreate”,加入如下代码:
if(row.__rownum % 2 == 0) {
this.getStyle().backgroundColor = "#F5B6B3";}
else{
this.getStyle().backgroundColor = "#FFFFFF";}
效果如下:
润乾报表则需要选中表体部分,在属性编辑器中选择显示,然后选择背景色在表达式里填写表达式为: if(row()%2!=0,-14618,-1),其中row()是润乾内置函数,取得当前单元格所在行的行号。效果如图:
数据显示格式
BIRT报表中选中所要设置的网格,在属性编辑器【Properties Editor】中,选择 Format Number、Format DateTime或Format String设置网格中数据的显示格式。
比如这里我们要求SALARY显示为“¥#,###.##”的样式,那么就需要将【Format Number】中的【Format as】选为【Custom】,然后选择相应的显示格式。
预览报表如下:
润乾报表中,首先选中设置的字段,在属性编辑器中,选择【值】然后选择【显示格式】,双击值单元格进行设置或者自定义。
转换数据的显示值
BIRT中选中设置的字段,在属性编辑器【Property Editor】-【Data】中,选择【Advanced】然后找到【On render】属性,这里我们将表中的性别进行一下显示值转换,把【On render】属性编辑为if(this.getValue()=="F"){this.setDisplayValue("Female");}else{this.setDisplayValue("Male");}
在润乾报表中,首先选中需要设置的字段,在属性编辑器中,选择【值】然后编辑【显示值表达式】为 map(list("F","M"),list("Famale","Male")),其中用到了两个润乾内置函数:map()显示值对照表函数,从对照表中找出当前单元格对应值的显示值;而list()获得一个枚举的数据集合。
上面列举的样式调整的例子是BIRT报表与润乾报表都能够支持的,下面我们来看两个BIRT较难支持的样式设置。
数据预警
这里我们设置一个“SALARY小于5000显示为红色”的预警。
选中所要设置的网格,在属性编辑器中选择【显示】,然后选择【前景色】在【表达式】里填写表达式为: if(F2<5000,-65536,-16777216) .
冻结表头
这里所说的冻结表头,是类似于Excel不分页冻结窗口的效果。
选择表头行,在属性编辑器中选择【行属性】,然后在【行类型】下拉选项中选择【报表头】,设置后对应行的行首会显示一个“头”字。 此时预览报表,拖动滚动条时表头是固定不变的,这样当报表的数据量较大时,我们可以很方便地对照表头查看具体数据。
导出
BIRT可以在报表的预览页进行导出,支持Excel、PostScript、PDF、Word、PowerPoint等格式的导出,并且支持导出分页以及指定页导出。
润乾报表则同时支持设计器中的导出以及web端的导出。
设计器中可以导出为Excel、Word、PDF、Text、HTML、Xml文件,其中Excel可选是否分页以及是否带公式,PDF可选是否分页以及是否为文本式,同时还支持office2007的Excel导出。
而Web端导出时可以选择导出Excel或 PDF,并进行设置。
可以看到,在常用的导出基础上,润乾报表提供了更多的导出方式以及类型。
查缺补漏
在收集了众多资料,以及实战操作后,我们还会发现润乾报表拥有一些birt报表无法实现的报表类型和功能,下面我们来一一细数。
填报功能
BIRT只支持数据展现,无法支持报表的数据填报功能,也就是无法实现将数据回填到数据库中这一操作。而这种填报功能在国内是十分常用的,用户往往会希望通过中间件,修改报表中的数据然后进行提交,修改数据库中的数据。
润乾报表提供的填报功能实现了将数据回填数据库的需求,并且可以通过固定网格填报、动态行式填报等不同类型进行填报。用户既可以通过在web端对数据直接进行修改,也可以将报表导出为Excel格式,在本地修改完毕之后再将Excel上传回填。
实际应用中,还经常会要求将一张填报表填入的数据,同时保存到多张物理表中,并且要求多张表之间保持数据库的事务一致性,这种填报表我们称为多源填报表。润乾报表能够很好地支持这一需求,
比较常见的多源填报表是主子填报表,由于主子表是两个或者多个不同的物理表,因此主子表的填报,必须同时存入多个不同的物理表。
比较复杂的多源填报表是多源交叉填报表,这种填报表既是交叉报表,又是多源关联分片报表,还是多源填报表,这种填报表在政府机关的项目中比较常见。传统的填报工具遇到这种填报表,往往只能采用编程来实现,但是在润乾报表填报中,利用润乾报表的填报模型,很轻松就可以实现。
固定网格填报表
主子填报表
交叉填报表
大数据报表
数据查询业务中,有时会碰到数据量很大的清单报表。由于用户输入的查询条件可能很宽泛,因此会从数据库中查出几百上千万甚至过亿行的记录,例如常见的银行流水记录、物流明细等。这类报表呈现时如果等着把记录全部检索出来再生成报表,必然需要很长时间,如果再加上导出操作,时间更会长得难以接受。BIRT报表在大数据报表展示及导出的方面就存在这些不足,导致性能不是很好,并且也无法实现实时刷新。
润乾报表提供的大报表功能可以很好地处理大量数据的网格式报表,通过以外存换内存的方式,把数据不断分批取出,存储到临时文件中,从而大大提升了报表展现性能,使得大报表运算和普通报表运算速度几乎无异。
润乾报表对大数据报表的展示
润乾报表对大数据报表的导出
不过,润乾报表的大报表功能也有一些局限:首先因为数据量较大,所以要尽量避免排序;其次由于大报表采用异步机制,将数据分批加载到内存再交给前端呈现,因此会增加 CPU 和磁盘 I/O 负载,不适合高并发的场景。
多维分析页面
随着数据库技术的广泛应用,各行各业的企业信息系统都会产生大量的数据,如何从这些海量数据中提取对企业决策分析有用的信息成为企业决策管理人员所面临的重要难题。
BIRT报表对于这方面的需求目前没有很好的支持手段。
而润乾报表的查询分析控件则针对以上问题做出了大的技术革新。不仅在前端页面显示上实现了可视化的拖拽模式,在数据整合上还支持用户通过各种已有的数据文件或者手写SQL语句等方式对查询结果进行灵活分析。多维分析页面的数据集可以通过数据库的SQL查询获得,也可以来自其他异构的数据文件,分析中无须关心数据集的数据来自哪里,始终都基于数据集返回的结果集进行分析。
在web网页上,用户可以通过拖拽字段灵活生成报表、计算字段,并通过对字段进行过滤,获得更详细的报表,也可以点击报表中的数据进行钻取;
拖拽字段生成报表
多维分析界面中提供各种统计图的模板,用户可以拖拽字段生成所需统计图;
多维分析页面中使用统计图模板
多维分析支持xls、xlsx、csv、txt等类型的数据文件,可以将文件中的数据展示为报表样式显示在页面中;
打开格式为xls的数据文件
对于没有操作完的报表,用户还可以保存为本地.olap类型文件,以便下次打开继续编辑;
对于处理完成的报表,则可以导出成Excel、word、txt、pdf等类型的文件。
总结
通过以上对比可以看到,相较于BIRT报表,润乾报表更适合国人的软件使用习惯,更加容易上手,在传统常用的报表功能上,增加了大量更加方便、快捷、高效、实用的功能,为用户提供了更具价值的报表开发综合解决方案。