历史版本1 :下拉复选框控件联动并实现动态列 返回文档
编辑时间:
内容长度:图片数:目录数:
修改原因:
1. 应用场景编辑
此方法实现动态分组报表适用于数据列比较多,数据量不是很大,想要灵活的查看不同维度的汇总数据时。
2. 实现思路编辑
实际就是普通if公式结合sql语句的规则以及FR本身的功能而实现。
3. 示例编辑
下面我们以销量表为例,来实现动态列的效果。
3.1 定义数据集
新建工作簿,增加数据集ds1,SQL语句为:SELECT 地区
${if(len(销售员)=0,"",",销售员")}
${if(len(产品类型)=0,"",",产品类型")}
${if(len(产品)=0,"",",产品")}
,sum(销量) as 销量汇总
FROM 销量
group by 地区
${if(len(销售员)=0,"",",销售员")}
${if(len(产品类型)=0,"",",产品类型")}
${if(len(产品)=0,"",",产品")}。
3.2 定义参数控件数据字典数据集
增加数据集 销售员,SQL语句为:SELECT distinct 销售员
FROM 销量。
增加数据集 产品类型,SQL语句为:SELECT distinct 产品类型
FROM 销量
where 1=1
${if(len(销售员)=0,"","and 销售员 in ('"+销售员+"')")} 。
增加数据集 产品,SQL语句为:SELECT distinct 产品 FROM 销量 where 1=1 ${if(len(销售员)=0,"","and 销售员 in ('"+销售员+"')")} ${if(len(产品类型)=0,"","and 产品类型 in ('"+产品类型+"')")}。
参数之间做了联动。所以需要在数据集sql中添加对应的参数过滤条件
3.3 表样设计
按照下图所示设置表样:
因为销售员,产品类型,产品为动态分组列。如果不选时单元格为空,所以需要设置C3,D3,E3单元格,条件属性列宽为0。条件为
len($$$)=0
3.4 参数界面设置
点击参数界面编辑触笔,切换到参数界面的可编辑状态,使用默认的参数界面。
分别添加调整三个参数控件,勾选返回字符串,分割符设置为 ',' ,为各控件添加绑定对应的数据字典
3.5 效果查看
点击分页预览,当选择对应的参数的值,点击查询就展示对应分组列值的分组汇总数据,如下图所示: