反馈已提交

网络繁忙

下拉树实现数据集过滤

  • 文档创建者:lu123
  • 编辑次数:23次
  • 最近更新:RosieY 于 2022-09-23
  • 1. 概述

    1.1 版本

    报表服务器版本
    功能变更
    11.0--

    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 函数

    2.2 下拉树构建

    1)编辑参数界面,添加参数 aa 控件,控件类型选择下拉树控件,标签控件值为地区:,如下图所示:

    2)下拉树的数据字典选择分层构建方式,数据来源是 layer1,layer2 和 layer3,具体使用方法清查看 :下拉树分层构建示例

    下拉树控件默认为单选下拉树,勾选结果返回完整层次路径。如下图所示:

    3.png

    注:如果下拉树属性中不勾选结果返回完整层次路径,那么下拉树返回值不是路径值,故无需使用 treelayer 函数对下拉树返回值进行再次修改,直接使用即可,此时,可以将ds1数据集的 SQL 语句修改为:SELECT * FROM [S订单] where 1=1 ${if(len(aa)==0,""," and 货主城市 = '"+aa+"'")}

    2.3 报表设计

    如下图所示:

    2.4 效果查看

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


    App 及 HTML5 效果如下图所示:

    2022-09-23_9-36-06.gif

    2.5 已完成模板

    已完成模板请参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Primary\widgetReport\单选下拉树实现数据集过滤.cpt

    点击下载模板:单选下拉树实现数据集过滤.cpt

    3. 多选下拉树实现数据集参数过滤

    3.1 数据准备

    打开上面的单选下拉树模板,更改数据集 ds1:SELECT * FROM [S订单]  where 1=1 ${if(len(aa)==0,""," and 货主城市 in ("+"'"+treelayer(aa,true,"\',\'")+"'"+")")}

    注:treelayer(aa,true,"\',\'")返回的值是以“,”为分隔符的字符串,形如“北京,天津”这样的字符串,但是在sql语句中实现in过滤必须形如“'北京,天津'”,两者比较,后者比前者最前面和最后面多了两个单引号,则在 treelayer(aa,true,"\',\'")前面和后面拼接两个单引号即可。

    3.2 下拉树构建

    选中下拉树控件,在控件属性表中,勾选多选结果返回完整层次路径。如下图所示:


    注:下拉树属性中勾选结果返回完整层次路径选项,在 ds1 数据集实现过滤的时候都需要使用 treelayer 函数,勾选该选项 treelayer 有两个作用,一个是获取最底层值,另一个是将数组转换为字符串,而不勾选该选项,则只是将数组转换为字符串。

    另:下拉树属性中不勾选结果返回完整层次路径,只返回叶子节点,这个时候过滤中不需要用到 treelayer 这个函数 ,可以把("+"'"+treelayer(aa,true,"\',\'")+"'"+")修改为("+"'"+replace(aa,',',"','")+"'"+")

    3.3 效果查看

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


    App 及 HTML5 效果如下图所示:

    2022-09-23_9-36-06.gif

    3.4 已完成模板

    已完成模板请参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Primary\widgetReport\多选下拉树实现数据集过滤.cpt

    点击下载模板:多选下拉树实现数据集过滤.cpt

    附件列表


    主题: 参数应用
    • 有帮助
    • 没帮助
    • 只是浏览

    售前咨询电话

    400-811-8890转1

    在线技术支持

    在线QQ:800049425

    热线电话:400-811-8890转2

    总裁办24H投诉

    热线电话:173-1278-1526

    文 档反 馈

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭