fineReport报表与润乾报表的比较
一.概述
通过对合肥警综业务功能和客户需求的分析,需要定制开发针对合肥警综平台的报表系统。考虑到人力资源和开发成本,目前的合肥警综开发项目组依托自身资源想要开发一套报表系统,难度高、代价大、可复用性低,通过多方协商和研讨,最终确定使用第三方报表工具生成报表并集成到合肥警综系统中。目前国内主流报表系统主要有FineReport报表系统和润乾报表系统,下面对这两款报表工具进行全面的分析和对比,以供后来者技术选型做参考。
二.优缺点比较
fineReport与润乾报表工具的优缺点比较主要以表格的形式展现
表1 fineReport与润乾比较表
比较范围报表FineReport 润乾
参数设计对比参数的定义与引用(定义
参数形式:SQL语句定义、
报表参数定义、单元格中
直接引用)
定义参数的形式相互独立,根据
需要定义
须现在报表参数中定义参数,然后
在单元格或SQL语句中引用参数预定义参数编辑控件支持不支持
拖拽式设计报表参数
支持从预定义控件中点击然后拖
入相应的单元格
需要对每个单元格定义编辑器,如
果参数较多工作量较大,影响工作
效率
参数控件风格支持将近20种编辑风格仅支持6中编辑风格
展示功能对比树状报表展现(组织递归
树)
支持通过添加树状展现,不需
要写代码
支持需要通过编写繁琐代码实
现
单元格形态(根据数据字
典显示相应的数据)
支持
不支持但有设置显示值的功能,
功能不够强大
单元格绑定数据和数据过
滤(在制作报表的时候需
要将数据放到单元格中,
设置他的扩展属性。如果
较简单只需要进项简单的界
面设置,在单元格过滤中添加过
滤条件即可
较复杂需要在单元格内写表达
式传参数的方式
不同的数据集之间存在某
种关系,并且数据取自多
个数据集,这样需要进行
数据之间的关联和筛选)
单元格文字分散对其支持不支持单元格文文字竖排展现支持不支持
背景图片保存保存在模板文件中,任何时候都
可以进行预览和编辑
通过URL连接,保存在系统路径中
悬浮元素(在界面任意摆
放图标、文字、图片等)
支持不支持
动态参数支持用参数实现相关功能支持分为参数和宏的概念
自定义分组可设置任意分组规则,支持条件
分组、公式分组
使用枚举分组编辑器实现不完全、
归并、重叠、条件以及按段类型分
组
分栏支持行式、列式、不规则卡片式
报表(行式、列式分栏)
仅支持行式报表(不具有分栏方
式)
直接构造日期(如果数据
库里没有日期或日期排列不规则,需要某段日期连续扩展,需要构造日期)支持报表设计器中直接使用公
式构造
不支持只能通过修改数据库或
编码实现
结果集筛选支持多种筛选方式(前N个,后N
个,奇数,偶数,指定)
只能用公式顺序筛选N条
超链接显示形式支持本页打开、新窗口打开以及
对话框形式打开
仅支持本页打开以及新窗口打开
图表功能对比图表数据来源数据集和单元格数据单元格数据
统计图标题显示支持静态动态两种(文本和公式)仅支持静态(文本)
图表背景不仅背景颜色,还支持背景图片仅支持背景颜色
折线图标记标记有十几种只有方框以及圆形标记
绘图区背景
支持并且背景颜色可以交错现
实
支持但是只可以设置背景色图表超链接参数值中文支持已内置cjkencode 需手工编码转换实现
其他设计器的布局
使用dockframe来改变设计器的
布局
把设计器布局完全在程序中写死
方面对比数据库与单元格关系的设
定
使用独立的数据列类型来设定数
据库与单元格关系
使用书写表达式来设定数据库与
单元格关系
分页预览的实现使用纯html来实现分页预览使用Applet方式来实现分页预览生产文件格式.cpt文件(xml格式文件).jsp文件
上手难易程度上手容易,精通难上手难,精通难
人性化
较为人性化大多功能直接通
过拖拽式实现
不够人性化功能大多需通过大
量的公式实现
响应速度
在同等数据量时,当FineReport报表未启用行式引擎时,报表展示
的响应速度比润乾报表快30%,数据量越大对比越明显。当
FineReport报表启用行式引擎时,10w数据量的情况下,FineReport
报表的响应速度比润乾报表快80%,性能大大优于润乾报表
部署后访问并发数(未注
册)
部署成功后访问并发数为2(同时只能
有2个客户端访问服务器)
部署成功后访问并发数为5
(未测试,润乾客服解答)
三.心得
通过两种报表的实际使用情况,以下是个人在使用过程中的一些心得:
1)润乾报表的数据处理方面相对而言要优于rineReport报表,但是在报表的页面以及效果的展示方面不及rineReport,而且图表方面也不及rineReport做得好2)fineReport报表工具现成的配置比较全面,大部分的功能实现直接通过拖拽即可实现,但是润乾需要些公式进行数据显示,需要进行大量的公式记忆
3)页面效果展示上面finereport还是比较绚丽的,有很好的动态的flash效果图,支持的类型比较多,提供的二次接口也比较丰富,用户自定义的东西也不错。
4)项目部署的时候,finereport需要自己手动拷贝目录,而润乾报表有现成的功能可以直接导出部署成一个web项目
不管是fineReport还是润乾报表,使用这些报表工具制作报表的效率远远高于自己通过代码实现报表的生成,大大节约了工作量。以下是制作功能类似的报表的两种制作方法的比较(fineReport报表工具以及手写代码的实现)
关于同比、环比的计算(请忽略页面布局问题,从内网拍照获取)
(FineReport实现,润乾实现方法类似)
(1)获取以下需要用到的数据集
获取数据集的sql相对而言比较简单:
以本月立案为例(本月破案、去年、上月等数据集获取的sql语句差不多)
同比的公式)即可完成需要的报表
对比于警综的刑事警情、刑事案件的同比、环比的计算(两者实现不同,但功能类似)(代码实现:实现同比、环比计算的其中一个方法的代码)
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。中间省略几百行代码
通过以上两个方法制作报表的过程可以看出报表工具制作复杂报表的简便性,只需要获取需要的数据集,然后通过简单的公式即可实现自己需要的报表的数据的显示;但是通过自己手写代码实现,则需要大量的代码实现,以上显示的仅仅是其中的一个方法。
四.报表详细操作说明
4.1.数据管理
4.1.1数据源的建立
FineReport
润乾
菜单-->数据管理-->数据源管理-->新建数据源-->选择数据库类型
Jdbc实例Oracle数据库为例:
4.1.2数据表的建立
FineReport
FineReport不需要专门创建数据表,只需要在创建数据集的时候选择创建的数据源,FineReport会显示该数据库下的所有的表
润乾
润乾在创建数据源之后需要创建数据表,只需要选择你要用到的表作为数据表即可数据源的添加步骤:
(1)数据管理-->数据源管理-->找到对应的数据源点击登记数据表-->选择模式-->选择
需要的数据表保存至对应的目录
(2)数据表管理-->找到对应目录点击添加资源-->选择数据表点击下一步-->选择数据源(数据源模式)-->添加表信息
4.1.3数据集的建立
FineReport
FineReport的数据集的添加有两种方式:服务器数据集、模板数据集
从服务器数据集添加的数据集可以被所有的报表引用该数据集,但是模板数据集只能被当前报表引用该数据集
创建服务器数据集的入口:
选择你要创建的数据集的类型,一般sql语句的查询选择数据库查询即可
创建模板数据集的入口:
或者:
润乾
(1)数据管理-->数据集管理-->在对应目录下点击添加资源-->选择数据集点击下一步-->选择对应的数据集类型-->选择数据表-->
(a)以SQL检索为例:
参数的设置:
(默认值可设置也可以不设置,可以选择让参数用于通用查询,也可不用于)
参数设置完之后点击下一步,可选择预览数据---->完成
(b)以复杂SQL为例:
点击复杂SQL-->选择数据源-->输入你的sql语句,
参数在参数tab页设置,参数的名称与sql语句里面的参数名称相同(?参数名)要配置条件宏需在sql语句里面宏标识${宏名称}
复杂SQL添加条件宏,数据集可以用于通用查询(面板查询条件的设置)
4.2.参数查询
fineReport
FineReport报表参数的标识为:${参数名}
当定义多条件查询面板时,需要定义模板参数
润乾
润乾报表参数的标识:?参数名
当定义多条件查询面板时,如果数据集是普通的sql查询可以直接使用数据集字段作为
查询条件或参数作为查询条件,但是数据集为复杂SQL时需使用宏作为查询条件
4.3.超链接的定义
fineReport
选择要添加超链接的单元格,点击右键选择添加超链接
润乾创建的报表定义超链接相对而言比较麻烦,首先创建一个链接的报表,在菜单页选择新建超链接(创建的超链接可供不同报表使用,关联字段要一样)
创建完超链接之后回到报表选择单元格,插入超链接,选择刚刚建立的超链接即可
4.4.统计图表的插入
FineReport
fineReport插入图表的方式有两种:单元格插入以及悬浮插入
润乾
润乾插入图表通过单元格的插入的方式,但图表的样式有二维以及三维还有一些自定义的图表
4.5.部署
FineReport
Tomcat服务器部署(独立部署):
独立部署就是将FineReport应用集成到新的Web工程
把FineReport_7.1安装目录下的WebReport文件拷到%Tomcat_HOME%/webapps/下即可Websphere6.1服务器部署:
Jdk1.6下,使用命令cmd进入%FineReport_HOME%\WebReport所在的目录,在出现的命令提示符窗口中键入jar cvf WebReport.war *.*,把WebReport这个文件夹压缩成WebReport.war包;如果使用jdk1.7打包,打包命令为:jar cvf WebReport.war * 打开was环境部署到Websphere服务器中
润乾报表的部署同fineReport类似【暂未部署,但部署方式类似】
4.6.报表的样式设计
fineReport与润乾都是自己的样式,也都可以自己通过定义css设计自己的样式,还可以在报表里引用已有的js和css文件