概述

报表是用表格、图表等格式来展现数据的工具,不仅格式多样,其中数据更是要体现出动态的效果。其中,分组报表是常见的一种类型,包括按区域、产品类别、客户、年度、季度、月份等不同条件分组。

上图是一个典型的规则分组情况,另外还有一些不规则的分组情况,典型情况就是按段分组,比如时间段、年龄段等,也就是按照某个值区间完成记录分组。

上图的例子中我们可以看到,分别统计了 “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 帆软)相关推荐

  1. 中国式报表——介绍信实现(润乾 vs 帆软)

    介绍信是一种常见的格式文件,事实上也可以看做一种报表.传统方式是印好空白格式文件,用时手工填写.现在,电子信息系统已经日益普及,介绍信也可以在应用系统中选择人员信息后,通过代码或报表工具直接生成,然后 ...

  2. 使用多级分组报表展现分类数据

    使用多级分组报表展现分类数据 当你走进便利店,你会发现所有的商品都是按类排放的,分类排放可以帮助您快速找到同类商品,也可以快速发现你想要的商品. 当去饭店吃饭的时候,菜单上的菜也是按类别排列的,比如凉 ...

  3. 润乾报表分组求和_实现报表数据预先计算

    报表应用中,如果数据量较大或计算过程较复杂,往往会导致报表数据源准备过慢,从而影响报表性能.这种情况下可以预先计算报表需要的数据,在呈现时直接引用,使得用户在访问报表时可以迅速地获得响应. 一.当前的 ...

  4. 皕杰报表中的过滤分组函数与过滤分组报表

    过滤分组报表是什么样的呢?见下图. 从图中可以看出,"华北"组中的一部分记录被过滤,并单独拎出来在"其中:北京"组和"其中:天津"组中进行了 ...

  5. 润乾报表CookBook与使用

    part1 1. 数据源相关 1.1 报表工具连接文本数据 1.2 报表工具连接非关系数据库(待补充) 1.3 报表异构数据源关联混算 1.4 报表工具 json 数据源 1.5 报表工具连 sap ...

  6. 报表工具对比之润乾报表与锐浪报表对比

    目前市场上报表工具五花八门,国内的.国外的.开源的.收费的,让人不免有眼花缭乱之感.本文将简单地从报表设计.数据处理.数据填报.数据分析.集成调用几方面对大家使用的比较多的润乾报表和锐浪报表(Grid ...

  7. 积木报表对比帆软报表有什么区别?

    自从积木报表的开源1.0-beta版本发布,广大开发者备受喜爱,同时还总会问起:"积木报跟帆软有什么区别?" 我们从内心不愿做这样的对比,只想做好 自己的产品,不愿去评判同行产品的 ...

  8. 润乾报表实现组内排序报表及改进

    报表开发中经常会遇到需要进行组内排序的报表,如按月份的分组汇总值排序显示,并显示每月销售额前十名的记录.使用报表工具一般通过隐藏行列辅助可以实现,下面通过实例说明润乾报表的实现过程,以及改进方案. 报 ...

  9. 润乾报表实现无数据源的规则报表及改进

    某报表系统中有部分报表需要按照一定规则显示数据,如:显示查询日期范围内的奇数日数据,要求数据库中即使无记录该日期也显示(内容为空). 本文重点来实现奇数日期序列,数据区不是重点,故置空. 以上述报表需 ...

最新文章

  1. Linux Shell 重定向到文件以当前时间命名
  2. android字符串显示textview,Android编程:TextView不显示完整字符串
  3. ORACLE数据库自动备份压缩的批处理脚本 rar 7z
  4. 禁止html页面无法粘贴复制,javascript中如何禁止复制粘贴?
  5. epic关于win7报错缺失api-ms-win-downlevel-kernel32-l2-1-0.dll
  6. dev gridcontrol 单元格内容复制_Excel复制还在用“Ctrl+C”?这5种高效的复制操作,堪称神来之笔...
  7. iOS开发之网络深度优化总结
  8. sci的JCR分区和中科院分区
  9. Arcgis学习视频
  10. 一文搞懂JVM内存结构
  11. LoggerFactory is not a Logback LoggerContext but Logback is on the classpath
  12. sublime主题配色
  13. QTabBar 和 QTabWidget部件 页签
  14. 变态java面试题一览
  15. 用 Vue 改造 Bootstrap,渐进提升项目框架[转]
  16. ORA-01950: no privileges on tablespace ‘USERS‘
  17. 2017届中兴综合面试
  18. 2048小游戏——简简单单利用js做出自己的游戏!!
  19. 编译Qtopia-1.7.0到E680g手机
  20. Fact Table 数据表什么意思

热门文章

  1. python画旋转六边形_使用python中的元素进行六边形绘制
  2. 容联云Q3营收2.76亿元,技术驱动构建“通讯+AI+数据”核心能力
  3. 【牛客sql实战2】查找入职员工时间排名倒数第三的员工所有信息
  4. Deep CARs:使用Pytorch学习框架实现迁移学习
  5. “囤菜新宠”预制菜,会是生鲜电商的破局点吗?
  6. ICCV2021 Group-Free 3D Object Detection via Transformers
  7. 更新一小步丨迅为i.MX8MM开发板手册更新1.6版新资料
  8. CN_@DNS@HTTP
  9. Chrome浏览器清除js缓存
  10. XSS基础原理(Cross-site scripting)