润乾报表提供了单元格同值合并的功能,可以实现动态层次的分组报表。这里通过一个例子来说明使用过程。
目标报表:
需要根据参数动态传递分组字段,按不同维度汇总订单运货费。如参数输入“货主地区, 货主城市”,显示的报表效果如下:
当参数输入“货主地区, 运货商, 货主城市”时,报表显示如下:
以下为具体实现步骤:
1、连接数据源
连接润乾报表设计器自带 DEMO 数据源:
2、设置报表参数
新建报表,并设置报表参数如下:
其中,gnum 为分组字段数;gname 为分组字段名,多个字段使用逗号分隔
3、设置数据集
报表数据集使用 SQL 检索,数据集设置如下:
这里使用了参数的 ${参数名} 的用法。利用 ${参数名} 引用方式可以在报表中动态进行表达式的替换,在报表运算之前,系统会全面搜索整张报表定义,将所有 ${参数名} 中的参数名替换成参数值,然后再进行报表计算。
4、设置报表单元格表达式
报表表达式设置如下:
上面使用了动态列表达式,其中 ds.fname()获得字段名,ds.field() 进行取数。此时如果不设置同值合并,得到的结果是:
而我们希望当分组字段值相同时,可以纵向合并成一个单元格,也就是“同值合并”。
5、设置同值合并
选中 A3 和 B3 单元格,选择右侧属性面板中的同值合并选项为“纵向合并”(可选择的合并方式有:横向合并、纵向合并和不合并)
再次预览报表即可得到期望的结果。
详情链接:
http://c.raqsoft.com.cn/article/1554690581267?r=gxy
本文讲解如何正确使用itertools.groupby按字符串首字母对pandasseries数据进行分组,重点解决未排序导致分组断裂、键对象不可读等问题,并提供更简洁、健壮的替代方案。 本文讲解如何正确使用itertools.groupby按字符串首字母对pandasseries数据进行分组,重点...
本文介绍如何在Pandas中基于多条件过滤(如colC>0且colB属于指定集合),按colA分组统计colB的唯一值个数,并仅保留计数大于2的分组,最终导出对应原始数据子集。 本文介绍如何在pandas中基于多条件过滤(如`colc>0`且`colb`属于指定集合),按`cola`分组...
本文详解如何正确使用Python的itertools.groupby按字符串首字母分组,强调必须先排序再分组,并提供简洁、可读、无冗余的实现方案。 本文详解如何正确使用python的`itertools.groupby`按字符串首字母分组,强调**必须先排序再分组**,并提供简洁、可读、无冗余的实现...
本文介绍如何对高频股票OHLCV数据按时间分组(如每日同一时刻),并为每组计算最近10个同时间点的成交量滚动排名,解决groupby与rolling协同使用的常见误区。 本文介绍如何对高频股票ohlcv数据按时间分组(如每日同一时刻),并为每组计算最近10个同时间点的成交量滚动排名,解决`group...
本文介绍在pandas中,当需要基于一个dataframe的条件筛选结果(布尔series)来过滤另一个具有重复键的dataframe的groupby分组时,正确的实现方法:先用isin()定位目标键值,再对目标dataframe预过滤,最后执行groupby。 本文介绍在pandas中,当需要基于...
本文介绍如何利用主表中生成的布尔Series,精准筛选另一张含重复键的表中对应分组的数据,核心是通过isin()关联键值而非直接索引对齐,避免因行数不等导致的索引错位问题。 本文介绍如何利用主表中生成的布尔series,精准筛选另一张含重复键的表中对应分组的数据,核心是通过`isin()`关联键值而...
本文介绍一种基于逐元素百分比差异构建自定义距离矩阵,并结合dbscan实现严格化学相似性分组的python方法,确保所有变量同时满足设定阈值(如±10%)才归为同一组。 本文介绍一种基于逐元素百分比差异构建自定义距离矩阵,并结合dbscan实现严格化学相似性分组的python方法,确保所有变量同时满...
本文介绍使用Pandas对数据按Code分组后,识别同一组内Date完全重复的记录,并将对应行的Same_Month字段统一设为'Yes'的高效实现方法。 本文介绍使用pandas对数据按`code`分组后,识别同一组内`date`完全重复的记录,并将对应行的`same_month`字段统一设为`'...