1. 概述
在数据集查询中,数据表,数据列以及条件都可以是动态的,下面我们来介绍动态数据表和动态条件,动态数据列实现方式有两种,下面有章节专门介绍。 2. 动态数据表
若数据库中存在两张表结构相同,只是数据量不同,如何实现不同的人根据需要选择不同的表进行查看,从而提高查询效率呢?
2.1 实现思路
在定义数据集时,通过if函数来判断参数的值从而来实现调用不同的数据表,如直接将SQL语句定义成:SELECT * FROM ${if(aa=1,'订单','订单1')},即若参数aa=1时,查询的是订单表,若aa!=1时,查询的是订单1表。
3. 动态条件
若您对表中的数据进行过滤时,查询条件是不确定的,有时候想用A列进行过滤,有时候想用B列进行过滤,此时要如何实现呢?
3.1 实现思路
在定义数据集时,将条件定义为参数,如SQL语句定义成:SELECT * FROM TableName ${Condition}。
3.2 示例
打开模板:%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Parameter\DynamicSQL\DynamicSQL.cpt。
将数据集修改为:SELECT * FROM 订单 ${Condition}。
将参数界面的控件名称修改为Condition即可。
保存模板点击分页预览,输入动态的查询条件如:where 货主地区='西南',便可以获取货主地区为西南的数据了,效果如下图:
已完成模板,可参考:%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Parameter\DynamicSQL\DynamicSQL1.cpt。