1. 概述编辑
1.1应用场景
下拉树实现数据集过滤,有以下两种方式:
1)单选下拉树:参数过滤条件只能单个
2)多选下拉数:参数过滤条件可以是单个可以是多个
效果如下图所示:
1.2实现思路
通过设置参数面板属性勾选是否多选实现,实现下拉数单多选功能。
2. 示例编辑
2.1 数据准备
新建数据集 ds1:SELECT * FROM S订单 where 1=1 ${if(len(aa)==0,""," and 货主城市 = '"+treelayer(aa)+"'")}
新建数据集 layer1:SELECT 货主地区 FROM 订单 where 货主地区!=""
新建数据集 layer2:SELECT 货主省份 FROM 订单 where 货主省份!="" and 货主地区='${layer1}'
新建数据集 layer3:SELECT 货主城市 FROM 订单 where 货主城市!="" and 货主省份='${layer2}'
注:数据集 ds1 中使用到了 treelayer 函数,即取得参数 aa 的最后一层值,详细用法请查看 treelayer 函数。
如果下拉树属性中不勾选结果返回完整层次路径,那么下拉树返回值不是路径值,故无需使用 treelayer 函数对下拉树返回值进行再次修改,直接使用即可,此时,可以将ds1数据集的 SQL 语句修改为:SELECT * FROM [S订单] where 1=1 ${if(len(aa)==0,""," and 货主城市 = '"+aa+"'")}
2.2 设计报表
1)在参数界面由参数 aa 生成控件,控件类型选择下拉树
2)下拉树的数据字典选择分层构建方式,数据来源是 layer1,layer2 和 layer3,具体使用方法清查看 下拉树分层构建示例。
3)报表块设计以下内容,并分别拖入对应字段。
2.3单选下拉树设置
设置参数面板属性取消勾选多选框。
2.4多选下拉树设置
设置参数面板属性取消勾选多选框。
2.5效果预览
3. 模板下载编辑
1)单选下拉树实现数据集过滤已完成模板请参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Primary\widgetReport\单选下拉树实现数据集过滤.cpt
点击下载模板:单选下拉树实现数据集过滤.cpt
2)多选下拉树实现数据集过滤已完成模板请参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Primary\widgetReport\多选下拉树实现数据集过滤.cpt
点击下载模板:多选下拉树实现数据集过滤.cpt