用户手册 >> 控件 >> 控件示例 >> 下拉树实现数据集过滤

下拉树实现数据集过滤

顶( )
最后更新日期: 人发表评论 (点击查看)
下拉树实现数据集过滤,下拉树过滤
1. 问题描述
我们在制作模板时,经常要使用到参数,参数分为两种,一种是数据集参数,一种的模板参数,因此,过滤也分为两种,一种是数据集参数过滤,一种是模板参数过滤,这两种在前面都有讲到过,也介绍过用法,由于下拉树的特殊性,其返回值是路径数组值,并不是一个字符串,那么如果使用下拉树的话,其过滤的方式也就有所不同,下面分别讲述数据集参数过滤和模板参数过滤的方法。
2. 数据集参数过滤
2.1 单选下拉树
新建数据集ds1:SELECT * FROM [S订单] where 1=1 ${if(len(aa)==0,""," and 货主城市 = '"+treelayer(aa)+"'")}
新建数据集layer1:SELECT 货主地区 FROM [订单] where 货主地区 is not null
新建数据集layer2:SELECT 货主省份 FROM [订单] where 货主省份 is not null and 货主地区='${layer1}'
新建数据集layer3:SELECT 货主城市 FROM [订单] where 货主城市 is not null and 货主省份='${layer2}'
注:数据集ds1中使用到了treelayer函数,即取得参数aa的最后一层值,详细用法请查看treelayer函数
在参数界面由参数aa生成控件,控件类型选择下拉树,下拉树的数据字典选择分层构建方式,数据来源是layer1,layer2和layer3,具体使用方法清查看下拉树分层构建示例
下拉树控件默认为单选下拉树,所以其他选项均为默认。
参数界面如下图:
如下图:
具体模板请查看:%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Primary\widgetReport\singletree.cpt
2.2 多选下拉树
打开上面的单选下拉树模板,更改数据集ds1:SELECT * FROM [S订单] where 1=1 ${if(len(aa)==0,""," and 货主城市 in ("+"'"+treelayer(aa,true,"\',\'")+"'"+")")}
注:treelayer(aa,true,"\',\'")返回的值是以“'”为分隔符的字符串,形如“北京,天津”这样的字符串,但是在sql语句中实现in过滤必须形如“'北京,天津'”,两者比较,后者比前者最前面和最后面多了两个单引号,则在treelayer(aa,true,"\',\'")前面和后面拼接两个单引号即可。
选中下拉树控件,在控件属性表中,勾选多选复选框,其余默认。如下图:
详细模板请查看:%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Primary\widgetReport\mutitree.cpt
 
 
 
 
   
文明发言,用心评论
 
应用此篇文章,您:
不费力
研究了一会
琢磨了好久
 
查看全部条>>
返回顶部
Copyright©2019 帆软软件有限公司
苏ICP备18065767号-3