概述
概述
报表是用表格、图表等格式来展现数据的工具,不仅格式多样,其中数据更是要体现出动态的效果。其中,分组报表是常见的一种类型,包括按区域、产品类别、客户、年度、季度、月份等不同条件分组。
上图是一个典型的规则分组情况,另外还有一些不规则的分组情况,典型情况就是按段分组,比如时间段、年龄段等,也就是按照某个值区间完成记录分组。
上图的例子中我们可以看到,分别统计了 “2012 年圣诞前”、“2012 年圣诞–2013 年国庆”、“2013 年国庆–2014 年五一”、“2014 年五一以后” 四个时间段各地区的订单情况。
目前,常见的报表工具(包括开源、商业报表)都可以轻松制作规则分组报表,但对于不规则的就会吃力了,甚至直接做不了。在国内报表工具中,做的相对较好是润乾和帆软,它们解决此类报表都没什么问题,只是做法上有所不同,接下来我们分别用两款产品介绍这类报表的制作过程,供大家对比参考。
注:例子均采用各产品自带数据库的“订单表”为例,表样如上图。
润乾报表做法
1、准备数据集
SELECT 订单. 订单 ID, 订单. 订购日期, 订单. 订单金额, 订单. 货主地区 FROM 订单
2、定义报表参数
按照报表制作的通用性标准,按时间段分组常常是动态区间,因此我们通过定义参
数,给报表动态的分组时间段。
参数 arg1:参数类型“日期组”,值为“2012-12-25, 2013-10-1, 2014-5-1”;
参数 arg2:参数类型“字符串组”,值为“2012 年圣诞前”、“2012 年圣诞–2013 年国庆”、“2013 年国庆–2014 年五一”、“2014 年五一以后” 。
说明:arg1 为分段的 3 个时间点,arg2 则为分成的 4 个区间。
3、制作报表
模板如下:
其中:
(1)A3:ds1.group(货主地区:-1)
(2)B1:ds1.plot(订购日期,arg1),润乾封装的不规则分组函数
B1 的显示值表达式:map(to(0,count(arg1)+1),arg2)
另外,将 B1 的扩展方式设置为横向扩展
(3)B3:ds1.count()
(4)C3:ds1.sum(订单金额)
4、看效果
预览报表
** 帆软报表做法 **
1、准备数据集
SELECT 订单. 订单 ID, 订单. 订购日期, 订单明细. 数量, 订单明细. 数量订单明细. 单价订单明细. 折扣 金额, 客户. 地区 FROM S 订单明细 订单明细,S 订单 订单,S 客户 客户 WHERE 客户. 客户 ID = 订单. 客户 ID AND 订单. 订单 ID = 订单明细. 订单 ID
2、制作报表
模板如下
A4:ds1.G(地区)
B2:ds1.G(订购日期)
B4:ds1. 个数 (订单 ID)
C4:ds1. 求和 (金额)
3、定义不规则分组列表
因为没有封装不规则分组函数,所以只能针对性的定义分组列表实现,如下。
选中 B2 单元格,单元格元素 -- 数据设置,选择“高级”-- “自定义”
分别定义各分组区间名称及条件表达式,列表如下
(1)2010 年圣诞前
(2)2010 年圣诞–2011 年国庆
(3)2011 年国庆–2012 年五一
(4)2012 年五一以后
这一步需要逐个定义,因此略显麻烦,而且不太容易维护,灵活性较差。
4、看效果
总结:对于国内的商业报表,解决中国式复杂报表是标配的能力。从上面的例子我们不难看出,对于不规则分组的报表需求来说,各厂商也有各自的解决方案,只不过做法不同,略有优劣。对于用户来说,应该根据需求、使用习惯、设计制作能力等方面来选择更适合自己的产品。本例仅作为按段分组报表功能供用户参考对比,欢迎指正。
最后
以上就是刻苦月亮为你收集整理的中国式复杂报表:按段分组报表制作对比(润乾 vs 帆软)的全部内容,希望文章能够帮你解决中国式复杂报表:按段分组报表制作对比(润乾 vs 帆软)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复