反馈已提交

网络繁忙

当前为10.0版本文档,只有最新版本的文档支持在线编辑修改,如果想创建/编辑文档,请移步至 最新版帮助文档

下拉复选框参数为空选择全部

  • 文档创建者:cherishdqy
  • 历史版本:21
  • 最近更新:RosieY 于 2021-12-07
  • 1. 概述

    下拉复选框参数为空选择全部 在线视频学习 请查看 参数为空选择全部

    1.1 问题描述

    在使用参数进行过滤时,选择某个参数值后就会根据选择的值进行过滤,但是如何实现如下图效果即货主地区下拉复选框中不选择参数值时能够查询出数据表中的全部值呢?效果如下图所示:

    222

    1.2 解决思路

    下拉复选框可以通过报表参数或数据参数来实现复选,若需要实现参数为空选择全部,可取消勾选「点击查询前不显示报表内容」即可。

    2. 示例一:通过模板参数实现

    2.1 新建数据集

    添加数据集 ds1,SQL 语句为:SELECT * FROM 订单

    2.2 报表设计

    在第一行添加表头,将数据集 ds1 的字段依次拖入单元格中,如下图所示:
    222

    2.3 添加参数控件

    1)添加一个标签控件,控件值设置为货主地区,如下图所示:

    222
    2)添加一个「下拉复选框控件」,控件名为 area 数据字典选择数据库表,数据库为 FRDemo ,数据表为订单,实际值与显示值的列名都选择货主地区,返回值类型为数组,如下图所示:

    2021-07-12_14-54-50.png

    3)添加查询控件,如下图所示:
    222
    4)点击参数面板空白处,在右侧的属性中,设置不勾选点击查询前不显示报表内容如下图所示:
    222

    2.4 设置过滤条件

    双击 A2 单元格,选择过滤按钮,给 A2 单元格增加过滤条件,可选列为货主地区,操作符为包含于,公式:if(len($area)==0,nofilter,$area) ,如下图所示:

    222

    注:nofilter 表示不过滤,if(len($area)==0,nofilter,$area) 表示参数 area 为空,就不过滤,若不为空则以参数值进行过滤;if(len($province)==0,nofilter,$province) 意义相同。

    3. 示例二:通过数据集参数实现

    3.1 新建数据集

    新建数据集 ds1 的 SQL 语句修改为:SELECT * FROM 订单 where 1=1  ${if(len(area) == 0,"","and 货主地区 in ('" + area + "')")}

    公式中 ${if(len(area) == 0,"","and 货主地区 in ('" + area + "')")} 表示若参数 area 为空就不进行过滤,若不为空则货主地区等于参数值。如下图所示:

    注:where 1=1 表示条件永真,防止没有之后的参数条件时,where 多出而导致出错;len(area)==0 表示参数 area 为空;"and 货主地区='"+area+"'" 中间的 area 表示取参数值,'+' 为字符串拼接符号。

    2021-07-12_15-02-12.png

    3.2 报表设计

    报表设计如本文 2.2 节所示。

    3.3 添加参数控件

    编辑参数面板,选择「全部添加」,将「标签控件」的控件值修改为货主地区:,「下拉复选框控件」的数据字典选择数据库表,数据库为 FRDemo ,数据表为订单,实际值与显示值的列名都选择货主地区,返回值类型为字符串,分隔符为 ',' ,如下图所示:

    2021-07-12_15-05-17.png

    点击参数面板空白处,在右侧的属性中,设置不勾选点击查询前不显示报表内容,如下图所示:

    2021-07-12_15-10-54.png

    4. 效果预览

    4.1 PC 端

    点击「分页预览」,不输入参数值时,直接点击「查询」,效果如本文 1.1 节所示。

    4.2 移动端

    App 与 HTML5 端预览效果,如下图所示:

    222

    5. 已完成模板

    1)示例一

    已完成模板,可参考:%FR_HOME%\webroot\WEB-INF\reportlets\doc\Parameter\下拉复选框实现参数为空选择全部-模板参数.cpt

    点击下载模板:下拉复选框实现参数为空选择全部-模板参数.cpt

    2)示例二

    已完成模板,可参考:%FR_HOME%\webroot\WEB-INF\reportlets\doc\Parameter\下拉复选框实现参数为空选择全部-数据集参数.cpt

    点击下载模板:下拉复选框实现参数为空选择全部-数据集参数.cpt

    附件列表


    主题: 参数应用
    已经是第一篇
    已经是最后一篇
    • 有帮助
    • 没帮助
    • 只是浏览

    售前咨询电话

    400-811-8890转1

    在线技术支持

    请前往「服务平台」,选择「在线支持」

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

    总裁办24H投诉

    热线电话:173-1278-1526