上一次讲了这三种主流的报表工具在数据源支持上的差异,这次要说一下最近正在关注的统计展现的不同。

直接进入主题,从数据扩展上面开始讲,finereport报表动态返回数据记录,单元格绑定的数据可自动进行扩展,支持全界面和书写表达式两种设置方式;RQ动态返回数据记录,单元格绑定的数据可自动进行扩展,支持全界面和书写表达式两种设置方式;而水晶报表不支持,是传统条带状工具。

行列对称这个功能:finereport数据的扩展,并非像传统的分组报表只能纵向的扩展,而是天然支持行列对称,不需要写一行代码,设计横向报表;RQ数据的扩展,并非像传统的分组报表只能纵向的扩展,而是天然支持行列对称,不需要写一行代码,设计横向报表;水晶报表不支持。

单元格附属关系:finereport绑定数据列后的单元格之间并非平行关系,而是存在附属关系。附属格跟随其父格扩展;RQ绑定数据列后的单元格之间并非平行关系,而是存在附属关系。附属格跟随其父格扩展。;水晶报表不支持。

分组/列表:finereport可合并数据列当中的内容相同的值,返回给报表,即一般意义上的分组。或者不进行合并,按照数据库中的原样返回到报表中;RQ可合并数据列当中的内容相同的值,返回给报表,即一般意义上的分组。或者不进行合并,按照数据库中的原样返回到报表中;水晶报表支持,不同报表区域的数据展示方式不同,分组眉,分组脚即为分组形式,主体区为列表数据。

数据汇总:finereport对数据进行求和,平均,个数统计等等。另外,还有页内汇总,组内汇总等等多种汇总方式;RQ对数据进行求和,平均,个数统计等等。另外,还有页内汇总,组内汇总等等多种汇总方式;水晶报表在指定的分组眉,分组脚区域进行简单的汇总。

公式分组:finereport对数据记录,并不是简单地按照值进行分组,而是根据一定的公式逻辑的计算结果进行分组;RQ通过单元格编辑表达式来实现;水晶通过单元格编辑表达式来实现;水晶报表不支持。

高级分组:finereport数据并非枚举,而是可能需要按照分段分组,或者其它不规则的划分;RQ支持分段式分组;水晶报表支持简单的分段式分组。

多数据源关联:finereport数据可以来自于多个不同的数据源,多个不同物理数据库,或不同类型的数据源;RQ数据可以来自于多个不同的数据源,多个不同物理数据库,或不同类型的数据源;水晶报表不支持,需要事先通过SQL将多个数据集拼合到一起。

数据形态:finerepor包括数据字典和公式形态,数据字典是将报表设计的实际值和预览显示值的转换,主要用于关系表的数据转换;RQ通过实际值和显示值来达成数据形态;水晶报表不支持。

层次坐标:finereport对报表扩展后的数据,进行定位,从而可以设计同期比,占比,累计,排名等传统的工具无法实现的报表;RQ对报表扩展后的数据,进行定位,从而可以设计同期比,占比,累计,排名等传统的工具无法实现的报表;水晶报表不支持。

编号:finereport对扩展后的数据进行编号,或者自定义编号列表;RQ对扩展后的数据进行编号,或者自定义编号列表;水晶报表不支持。

子报表:finereport单元格内支持子报表,可以把报表划分成互不影响的逻辑块;RQ单元格内支持子报表,可以把报表划分成互不影响的逻辑块;水晶报表单元格内支持子报表,可以把报表划分成互不影响的逻辑块。

公式运算:finereport增加了多种常用但EXCEL不支持的公式,特别是针对时间的公式运算,同时页眉页脚等处也增加了公式运算的支持。同时具有公式扩展功能;RQ增加了多种常用但EXCEL不支持的公式,特别是针对时间的公式运算,同时页眉页脚等处也增加了公式运算的支持。同时具有公式扩展功能;水晶报表支持一些简单的公式。

组织递归树:finereport针对IDPREID形式的数据,可以自动进行组织递归树分层,无需多层过滤条件,同时也提升此类报表的执行性能;RQ不支持;水晶报表不支持。

总结:finereport可以制作分组报表,交叉表,多层交叉表,明细表,主从报表,分为多片的报表,以及其它任意不规则的报表类型;RQ可以制作分组报表,交叉表,多层交叉表,明细表,主从报表,分为多片的报表,以及其它任意不规则的报表类型;水晶报表仅支持简单的分组报表,明细报表,交叉表,主子表。对复杂的中国式报表仅能通过编程来实现。