如何制作动态层分组报表

润乾报表提供了单元格同值合并的功能,可以实现动态层次的分组报表。这里通过一个例子来说明使用过程。

目标报表:

需要根据参数动态传递分组字段,按不同维度汇总订单运货费。如参数输入“货主地区, 货主城市”,显示的报表效果如下:

当参数输入“货主地区, 运货商, 货主城市”时,报表显示如下:

以下为具体实现步骤:


1、连接数据源

连接润乾报表设计器自带 DEMO 数据源:


2、设置报表参数

新建报表,并设置报表参数如下:

其中,gnum 为分组字段数;gname 为分组字段名,多个字段使用逗号分隔


3、设置数据集

报表数据集使用 SQL 检索,数据集设置如下:

这里使用了参数的 ${参数名} 的用法。利用 ${参数名} 引用方式可以在报表中动态进行表达式的替换,在报表运算之前,系统会全面搜索整张报表定义,将所有 ${参数名} 中的参数名替换成参数值,然后再进行报表计算。


4、设置报表单元格表达式

报表表达式设置如下:

上面使用了动态列表达式,其中 ds.fname()获得字段名,ds.field() 进行取数。此时如果不设置同值合并,得到的结果是:

而我们希望当分组字段值相同时,可以纵向合并成一个单元格,也就是“同值合并”。


5、设置同值合并

选中 A3 和 B3 单元格,选择右侧属性面板中的同值合并选项为“纵向合并”(可选择的合并方式有:横向合并、纵向合并和不合并)

再次预览报表即可得到期望的结果。

详情链接:

http://c.raqsoft.com.cn/article/1554690581267?r=gxy

相关推荐:

如何按字符串首字母对 Pandas Series 进行分组

本文讲解如何正确使用itertools.groupby按字符串首字母对pandasseries数据进行分组,重点解决未排序导致分组断裂、键对象不可读等问题,并提供更简洁、健壮的替代方案。 本文讲解如何正确使用itertools.groupby按字符串首字母对pandasseries数据进行分组,重点...

Pandas 中按列分组统计满足条件的唯一值数量并筛选结果

本文介绍如何在Pandas中基于多条件过滤(如colC>0且colB属于指定集合),按colA分组统计colB的唯一值个数,并仅保留计数大于2的分组,最终导出对应原始数据子集。 本文介绍如何在pandas中基于多条件过滤(如`colc>0`且`colb`属于指定集合),按`cola`分组...

如何按字符串首字母对数据进行分组

本文详解如何正确使用Python的itertools.groupby按字符串首字母分组,强调必须先排序再分组,并提供简洁、可读、无冗余的实现方案。 本文详解如何正确使用python的`itertools.groupby`按字符串首字母分组,强调**必须先排序再分组**,并提供简洁、可读、无冗余的实现...

如何在分组后计算滚动排名(以15分钟周期内近10期成交量排名为例)

本文介绍如何对高频股票OHLCV数据按时间分组(如每日同一时刻),并为每组计算最近10个同时间点的成交量滚动排名,解决groupby与rolling协同使用的常见误区。 本文介绍如何对高频股票ohlcv数据按时间分组(如每日同一时刻),并为每组计算最近10个同时间点的成交量滚动排名,解决`group...

如何使用布尔Series筛选groupby对象中的分组

本文介绍在pandas中,当需要基于一个dataframe的条件筛选结果(布尔series)来过滤另一个具有重复键的dataframe的groupby分组时,正确的实现方法:先用isin()定位目标键值,再对目标dataframe预过滤,最后执行groupby。 本文介绍在pandas中,当需要基于...

如何基于布尔索引筛选分组后的 DataFrame

本文介绍如何利用主表中生成的布尔Series,精准筛选另一张含重复键的表中对应分组的数据,核心是通过isin()关联键值而非直接索引对齐,避免因行数不等导致的索引错位问题。 本文介绍如何利用主表中生成的布尔series,精准筛选另一张含重复键的表中对应分组的数据,核心是通过`isin()`关联键值而...

如何使用Python对多变量化学数据按元素间百分比相似性进行精确分组

本文介绍一种基于逐元素百分比差异构建自定义距离矩阵,并结合dbscan实现严格化学相似性分组的python方法,确保所有变量同时满足设定阈值(如±10%)才归为同一组。 本文介绍一种基于逐元素百分比差异构建自定义距离矩阵,并结合dbscan实现严格化学相似性分组的python方法,确保所有变量同时满...

如何基于分组与日期一致性批量标记“同月”标识

本文介绍使用Pandas对数据按Code分组后,识别同一组内Date完全重复的记录,并将对应行的Same_Month字段统一设为'Yes'的高效实现方法。 本文介绍使用pandas对数据按`code`分组后,识别同一组内`date`完全重复的记录,并将对应行的`same_month`字段统一设为`'...