1. 概述
1.1 版本
报表服务器版本 | 功能变更 |
---|---|
11.0 | - |
1.2 功能简介
在数据集查询中,数据表,数据列以及条件都可以是动态的,动态数据列实现方式有两种方法,下面我们将分别介绍动态数据表和动态条件。
注:动态表暂不支持数据填报功能。
2. 动态数据表
3. 动态条件
3.1 应用场景
动态条件用于对表中的数据进行过滤时,并且查询条件是不确定时使用。例如:有时想用 A 列进行过滤,有时想用 B 列进行过滤。如下图所示:
3.2 实现思路
在定义数据集时,将条件定义为两个参数,一个是数据表字段名,一个是字段值。
如 SQL 语句定义成:SELECT * FROM 销量 where 1=1 ${if(len(name)==0||len(value)==0,"","and "+name+"='"+value+"'")}
3.3 示例
1) 打开模板
打开模板:%FR_HOME%\webroot\WEB-INF\reportlets\doc\Parameter\DynamicSQL\动态表.cpt。
2)修改数据集
将数据集 ds1 修改为:SELECT * FROM 销量 where 1=1 ${if(len(name)==0||len(value)==0,"","and "+name+"='"+value+"'")} ,如下图所示:
注:1=1 表示默认查询出全部信息。
${if(len(name)==0||len(value)==0,"","and "+name+"='"+value+"'")} 表示定义两个参数 name 和 value,分别表示字段名和值。
当参数框里都有值时,拼接上 and 条件,即and name='value';当参数框里没有值时,拼接上空字符串。
3)修改参数界面
将参数界面的文本控件table的控件名改为name,标签控件的控件值改为字段名:。
添加一个标签控件,控件值为:值:,添加一个文本控件value,如下图所示:
4)修改模板
删掉模板中的第1、2、3行,重新设计表格样式,如下图所示:
其中红色箭头是因为加了过滤条件,当 A3 单元格为空值则隐藏该行,为了实现当参数查询无数据时则不显示报表内容。
3.3 效果预览
1)PC 端
保存模板点击「分页预览」,输入动态的查询条件如:字段名为「地区」,值为「华北」,便可以获取地区为华北的数据了,效果如下图所示:
注:字段名框中输入的内容必须为数据表的字段名,否则报错!且两个框中都输入内容才可进行条件查询,否则查询全部信息。
2)移动端
App 及 HTML5 端效果如下图所示: