原文地址:http://c.raqsoft.com.cn/article/1597195841742?r=CGQ
润乾报表、帆软报表、Smartbi、永洪 BI、亿信 BI 这几款国内产品都把中国复杂报表作为宣传点。我们以常见的多源分片为报表为用例,来对比评测这些产品的处理能力(由于时间和知识限制,个别很偏的功能点可能会有遗漏)。
内容比较长,如果不想看细节,可以直接跳到最后看结论。
用例说明
报表式样
数据结构
[订单表]
主数据存储在订单表中,该表通过雇员 ID 和销售员表关联,通过产品 ID 和产品表关联。
[销售员表]
销售员表中存储职务、姓名,报表左下角统计数据时按照职务和姓名统计,该表通过雇员 ID 和订单表关联。
[产品表]
产品表中包含类别 ID 和产品 ID,并且是一对多关系,报表中需要按照类别分组,也就是要按该类别下多个产品的信息汇总。通过产品 ID 和订单表关联
[类别表]
这是一个中文字典表,通过它将类别 ID 映射成中文名称。
假定数据都来自数据库,可用 SQL 语句取出。
报表特点分析
1、 这是一个典型的多源分片报表,报表可以分成左上、右上、左下、右下四片区域,每片数据来自不同数据表(甚至可能不同数据库),需要实现多个数据集之间的关联。
2、 对字段数据的处理,数据库中存储的是订购日期,报表中需要按照年、月分组统计,需要根据日期解析出年、月,汇总区域是金额,数据库中存储的是单价、数量,需要对字段进行相乘操作。
3、 上表头中的产品类别需要按确定的次序排列,也就是维表 ID 的次序。
4、 左表头的层次不一样,上半两层,下半三层。
下面看下几款工具制作这个报表的过程和工作量。
关于工作量的评估,我们假定使用者均熟悉 SQL 语句且了解相应的报表工具,并只记录实际的制作和正常调试的时间,不包括查阅产品函数资料的时间,也就是一个熟手的完成时间。
润乾报表
制作过程
1、 配置并连接数据源,这个各个工具操作基本都类似,按照向导方式配置就行。
2、 设置数据集
润乾报表支持多数据集,本例的数据存储在四个表内,所以在报表中增加四个数据集,只要分别取四个表的数据(select * from …),可以通过向导操作。
3、 设计报表模板
多源分片报表是一个比较基础的中国式报表,国内报表工具基本都支持,这里看下几个关键单元格的设置:
3.1、 A3 单元格表达式:=ds1.group(year( 订购日期);year(订购日期):1)+“年”,需求中要求按照年月分组,而数据库中存储的是订购日期,所以此处先通过 year 函数取订购日期中的年份。
3.2、 D3 单元格:=ds1.sum( 数量单价 ),报表统计项中的金额是通过单价数量这两个字段生成。
3.3、 E2 单元格按照类别 ID 分组统计,但是要求这个单元格显示中文,单元格有个显示值表达式属性:
中文可以来自单独的一个数据集,这样通过内置的函数就可以将 id 映射成中文。
3.4、 E3 单元格