历史版本15 :解决动态列的分组统计问题 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 问题描述

利用 数据集 或 函数 方式制作出来的动态列默认是只能显示固定的列字段的,没有动态分组统计的功能,如果报表需要使用动态列,同时某个字段又需要汇总,那么原来的方法就不太适用了,必须进行改进。

最终效果如下图:

222


1.2 实现思路

由于 FineReport 为普通列提供的汇总不再适用于动态列,要想实现「销量」按前面的列自动汇总的话,必须通过 SQL 进行处理,首先判断动态列是否选择了「销量」,然后把销量字段处理成汇总。

2. 示例编辑

2.1 准备模板

打开模板%FR_HOME%\webroot\WEB-INF\reportlets\doc\Parameterr\DynamicCol\数据集参数实现动态列.cpt

1)将 A2-F2 单元格的数据设置改由「列表」改成「分组」,如图:

企业微信截图_16006062479401.png

2)修改数据集 ds1 的 SQL 语句为:SELECT ${if(len(col)=0,'*',replace(col,'销量','sum(销量)'))} FROM 销量 ${if(len(col)<1,"","group by "+replace(col,',销量',''))},并删掉参数 col 的变量默认值,如下图所示:

企业微信截图_16006069883785.png

2.2 效果预览

1) PC 端

保存模板,点击「分页预览」,效果如下图所示:

1606708575266672.gif

2) 移动端

App 端及 H5 端均支持,效果如下图所示:

9 (1).gif

3. 模板下载编辑

已完成模板,可参见:%FR_HOME%\webroot\WEB-INF\reportlets\doc\Parameter\DynamicCol\动态列的分组统计.cpt

点击下载模板:动态列的分组统计.cpt