反馈已提交

网络繁忙

下拉框参数为空选择全部

  • 文档创建者:cherishdqy
  • 历史版本:38
  • 最近更新:Catqiu 于 2024-03-04
  • 1. 概述

    1.1 版本

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

    1.2 问题描述

    使用参数进行报表数据查询时,如果控件中参数值为空(控件中不输入参数值),点击查询后,不会显示任何报表数据。如下图所示:

    Snag_47e0797.png

    我们需要实现的效果是,当控件中参数值为空,点击查询后,会显示报表中的全部数据。即在没有筛选条件的时候,显示报表所有内容,相当于不选值就不过滤。

    如下图所示:

    Snag_486498b.png

    1.3 解决思路

    可通过使用模板参数和数据集参数实现报表查询,同时修改过滤条件和数据集定义方式来实现参数为空选择全部。

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

    2.1 新建数据集

    新建数据集ds1,输入数据库查询语句SELECT * FROM 订单,查询出订单表中的所有数据。如下图所示:

    Snag_496df74.png

    2.2 定义模板参数

    1)定义一个模板参数「货主地区」,设置其默认值为「华北」。如下图所示:

    Snag_4b3b47f.png

    2)编辑参数面板,点击「全部添加」,设置下拉框控件的数据字典为订单表中的数据列货主地区。如下图所示:

    1.png

    1.png

    2.3 设计报表样式

    按照下面表格中的说明,设计报表的样式。如下表所示:

    单元格操作
    A1~I1单元格依次写入标题字段:订单编号、客户名称、订购日期、发货日期、运货商、货主名称、货主地址、货主城市、货主地区。选中 A1~I1 单元格设置预定义样式 Head
    A2~I2单元格依次拖入数据集中的数据列字段:订单ID、客户ID、订购日期、发货日期、运货商、货主名称、货主地址、货主城市、货主地区。选中 A2~I2 单元格,字体居中。选中 C2~D2 单元格,设置日期格式为 yyyy-MM-dd
    A1~I2选中 A1~I2 单元格,给表格整体添加预定义样式默认的天蓝色内外框

    2.png

    2.4 设置过滤条件

    给单元格 A2 添加数据过滤条件。双击 A2 单元格,在弹出的数据列对话框中选择过滤,添加一个普通条件,让数据列货主地区等于公式if(len($货主地区)==0,nofilter,$货主地区),点击增加,点击确定,即通过添加过滤条件的方式实现参数为空选全部的效果。如下图所示:

    注:nofilter 表示不过滤,if(len($货主地区)==0,nofilter,$货主地区) 表示参数「货主地区」为空,就不过滤数据,若不为空则以参数值进行过滤。

    3.png

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

    3.1 新建数据集

    在定义数据集参数时给它设置条件来实现参数为空选全部的效果,新建数据集 ds1,输入数据库查询语句:

    select * from 订单 

    where 1=1  

    ${if(len(货主地区) == 0,"","and 货主地区 = '" + 货主地区 + "'")}

    此时数据集参数为「货主地区」,设置参数默认值为华北,如下图所示:

    公式中语句的注释如下:

    • where 1=1 表示条件永真,防止没有参数条件时,where 后面没有有效内容导致出错。

    • len(货主地区)==0 表示参数「area」为空。

    • "and 货主地区='"+货主地区+"'" 中间的「area」表示取参数值,'+' 为字符串拼接符号。

    • ${if(len(area) == 0,"","and 货主地区 = '" +货主地区 + "'")} 表示:

    当参数「area」为空时,查询语句相当于:SELECT * FROM 订单

    当参数「area」不为空时,查询语句相当于:SELECT * FROM 订单 WHERE 1=1 and 货主地区='${货主地区}'

    3.2 设计报表样式

    按照下面表格中的说明,设计报表的样式。如下表所示:

    单元格操作
    A1~I1单元格依次写入标题字段:订单编号、客户名称、订购日期、发货日期、运货商、货主名称、货主地址、货主城市、货主地区。选中 A1~I1 单元格设置预定义样式 Head
    A2~I2单元格依次拖入数据集中的数据列字段:订单ID、客户ID、订购日期、发货日期、运货商、货主名称、货主地址、货主城市、货主地区。选中 A2~I2 单元格,字体居中。选中 C2~D2 单元格,设置日期格式为 yyyy-MM-dd
    A1~I2选中 A1~I2 单元格,给表格整体添加预定义样式默认的天蓝色内外框

    3.3 添加参数控件

    1)编辑参数面板,点击「全部添加」,设置下拉框控件的数据字典为订单表中的数据列货主地区。如下图所示:

    5.png

    2)修改标签控件的显示值为货主地区:。如下图所示:

    6.png

    4. 效果预览

    4.1 PC 端

    保存报表,分页预览查看报表。如下图所示:

    512A36DC-F078-449C-AAB6-C96F8AB4898A.GIF

    4.2 移动端

    App 与 HTML5 端效果相同,如下图所示:

    1567597701294363.gif

    5. 注意事项

    问题描述

    按上述文中设置完成后,当参数为空时,点击查询会展示所有的数据,如何设置预览时就显示全部的数据?

    解决方案

    按问按上述文中设置完成后,只需要取消勾选组件设置中的点击查询前不显示报表内容即可,如下图所示:

    6. 已完成模板

    1)示例一

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

    点击下载模板:下拉框模板参数为空选全部.cpt

    2)示例二:

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

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

    附件列表


    主题: 参数应用
    • 有帮助
    • 没帮助
    • 只是浏览
    中文(简体)

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

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

    不再提示

    10s后关闭

    联系我们
    在线支持
    获取专业技术支持,快速帮助您解决问题
    工作日9:00-12:00,13:30-17:30在线
    页面反馈
    针对当前网页的建议、问题反馈
    售前咨询
    采购需求/获取报价/预约演示
    或拨打: 400-811-8890 转1
    qr
    热线电话
    咨询/故障救援热线:400-811-8890转2
    总裁办24H投诉:17312781526
    提交页面反馈
    仅适用于当前网页的意见收集,帆软产品问题请在 问答板块提问前往服务平台 获取技术支持