反馈已提交

网络繁忙

参数为空查询特定日期的数据

  • 文档创建者:RosieY
  • 历史版本:3
  • 最近更新:RosieY 于 2023-02-09
  • 1. 概述

    1.1 版本

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

    1.2 预期效果

    参数为空查询全部”场景下,当数据量较多时,查询全部将会影响性能。其实多数场景下是不需要查询全部的,只要能显示数据,比如显示前一天的数据、显示前一周的数据,即显示某个时间段或时间点的数据。如下图所示:

    那参数为空时显示某个时间段或时间点的数据该如何实现呢?

    1.3 实现思路

    定义参数时通过公式,条件判断使得参数为空时,查询特定时间点或者时间段的数据。

    2. 示例

    2.1 准备数据

    新建普通报表,新建数据集 ds1,SQL 语句为:

    select * from 订单 where 1=1  ${if(len(货主地区) == 0,"and substr(订购日期,0,11) = '" + 查询日期 + "'","and 货主地区 = '" + 货主地区 + "'")}

    公式解释如下:

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

    ${if(len(货主地区) == 0,"and substr(订购日期,0,11) = '" + 订购日期 + "'","and 货主地区 = '" + 货主地区 + "'")}表示:

    定义一个参数「货主地区」,通过 if 语句来根据「货主地区」的值分别执行不同的 SQL 语句:

    • 当参数「货主地区」为空时,查询一个特定日期的数据,即又定义了一个参数「查询日期」,SQL 语句相当于:select * from 订单  where 1=1 and substr(订购日期,0,11) = '某个查询日期 ' ,其中 substr 是 SQL 的公式,处理一下数据,将表中的日期数据处理成我们需要的年月日形式。

    • 当参数「货主地区」不为空时,SQL 语句相当于:select * from 订单  where 1=1 and 货主地区 = '货主地区 ',即查询选定货主地区的数据。

    如下图所示:

    定义好数据集参数后,使用公式给查询日期一个动态特定的值,比如查询前一天的数据。如下图所示:

    2.2 设计表格

    如下图设计表格,将字段拖入到对应单元格中。

    2.3 添加参数控件

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

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

    2.4 效果预览

    2.4.1 PC 端

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

    2.4.2 移动端

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

    3. 模板下载

    已完成模板可参见:%FR_HOME%\webapps\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
    提交页面反馈
    仅适用于当前网页的意见收集,帆软产品问题请在 问答板块提问前往服务平台 获取技术支持