添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
重情义的香槟  ·  iOS-TalkingData文档中心·  6 天前    · 
重情义的吐司  ·  数据工厂数据集- ...·  5 天前    · 
强悍的斑马  ·  TA 关注的仓库 - 朱刚 ...·  2 周前    · 
才高八斗的开水瓶  ·  Oracle Service ...·  5 月前    · 
飘逸的小摩托  ·  遐悠网·  1 年前    · 
自信的花卷  ·  cocos creator TS ...·  1 年前    · 
  • 社区级协助
  • 文档创建者: RosieY
  • 历史版本: 4
  • 最近更新: TW 于 2024-04-26
  • 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