FineReport报表软件针对复杂格式的报表数据及Web报表的展现,通过多源分片、不规则分组、双向扩展来轻松拖拽做复杂格式的报表,制作报表从此摆脱了复杂的sql和表达式,不需要编程,大大提高了报表制作的效率。
相对于水晶报表(Crystal Report),FineReport报表无论是在报表设计,数据展现,还是表单,应用集成等方面,都具有明显的优势。
报表设计
在报表设计方面,FineReport报表工具的优势主要体现在以下几个方面:
-
多数据源
FineReport报表设计天然支持多数据源(集),同一张报表的数据可同时来自多个数据表,多个不同的数据库,或者多个不同的用户自定义数据视图,然后在报表中可直接相互运算形成最终的报表。
并且连接数据源的方式也多种多样,支持JDBC,JNDI数据源,如Oracle,DB2,sqlServer,MySQL等主流的数据库,自定义的程序数据源,文本数据源,Hibernate数据源,Remedy等等,同时数据源具有无限的扩展性,可以支持WebService,SOA等标准的数据。
水晶报表(Crystal Report)在理论上只支持单数据集,对多集的支持依赖于数据库的运算能力(叉乘与联合等或写存储过程),多库一般难以支持。另外一种处理方式,就是将多数据源先变相整理成单一数据源,然后再进行其它操作,并不是真正意义上的多数据源。
-
分组的调整,不完全分组
分组是报表数据当中,最常见的方式。FineReport报表工具的分组,是建立在单元格的基础之上,因此删除分组,更改分组字段等操作,就只需要对单元格进行操作,与报表内其它的数据无关。另外,在很多情况下,数据并非枚举式的完全分组,而是一些固定行列,或者按段分组等形式,FineReport报表提供了用户自定义分组,只需要添加一些条件,即可达到不规则分组的目的。
水晶报表(Crystal Report),所有的数据都被划分在条带状的模型当中,删除分组时会将相关的分组汇总单元一并删除,调整分组字段只能删掉重建,整个操作比较繁琐,且会导致重复工作。而不规则分组,在Crystal Report当中,则仅仅只是修改组名,无法修改其它跟随数据的计算。
-
数据扩展和交叉表
FineReport报表工具的数据扩展,是双向的,也就是行列对称,横纵方向能力一致,可以方便地制作交叉报表(多层),可同行式表一样制作复杂表头。
水晶报表(Crystal Report)制作交叉报表的方式,是采用专门的交叉表模型,其表头是按照向导自动生成的,缺乏灵活性。
-
报表分片
复杂报表当中,报表分为多片的现象非常常见,即整个报表是一个大的规则的报表,但是实际上可以分为多个不规则的小区域,各个区域之间看似没有联系,但是数据之间实际可以相互关联。FineReport由于支持多数据源,以及数据的行列对成扩展,因此支持报表的各片独立重复或者相互运算,并且允许固定和变动分片的混合。
水晶报表(Crystal Report)的单表模型不能支持分片。对于分片的报表,一种处理方法是事先编程准备数据,另一种则是靠子报表拼接来完成。处理相当繁琐,并且这两种处理方法也并非每次都能够达到要求,设计出需要的报表格式。