历史版本12 :动态数据表和动态条件 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

在数据集查询中,数据表,数据列以及条件都可以是动态的,下面我们来介绍动态数据表和动态条件,动态数据列实现方式有两种,下面有章节专门介绍。

2. 动态表编辑

若数据库中存在两张表,如何实现不同的人根据需要选择不同的表进行查看,从而提高查询效率呢?
2.1 实现思路
在定义数据集时,通过if函数来判断参数的值从而来实现调用不同的数据表
如直接将SQL语句定义成:SELECT * FROM ${if(aa=1,'订单','订单明细')},即若参数aa=1时,查询的是“订单表”,若aa!=1时,查询的是“订单明细表”。

3. 动态条件编辑

若您对表中的数据进行过滤时,查询条件是不确定的,有时候想用A列进行过滤,有时候想用B列进行过滤,此时要如何实现呢?
3.1 实现思路
在定义数据集时,将条件定义为两个参数,一个是数据表字段名,一个是字段值。
如SQL语句定义成:SELECT * FROM 订单 where 1=1 ${if(len(name)==0||len(value)==0,"","and "+name+"='"+value+"'")}
3.2 示例
1)打开模板
打开模板:%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Parameter\DynamicSQL\动态表.cpt

2)修改数据集
将数据集修改为:SELECT * FROM 订单 where 1=1 ${if(len(name)==0||len(value)==0,"","and "+name+"='"+value+"'")} ,如下:
222

注:1=1 表示默认查询出全部信息。
${if(len(name)==0||len(value)==0,"","and "+name+"='"+value+"'")}  表示定义两个参数name和value,分别表示字段名和值。
当参数框里都有值时,拼接上and条件,即 and name='value';当参数框里没有值时,拼接上空字符串。

3)修改参数界面
将参数界面的控件名称修改为字段名和值即可,控件类型都为文本控件,如下:
222


4)效果查看
保存模板点击分页预览,输入动态的查询条件如:字段名为【货主省份】,值为【湖南】,便可以获取货主省份为湖南的数据了,效果如下图:
222
 注:字段名框中输入的内容必须为数据表的字段名,否则报错!且两个框中都输入内容才可进行条件查询,否则查询全部信息。

在线查看模板效果请点击DynamicSQL1.cpt
已完成模板,可参考:%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Parameter\DynamicSQL\动态表和动态条件.cpt