动态参数 -- 为空不查询此字段
动态参数,在润乾报表上,有着多样的用法和功能,此处介绍一个能优化运算效率的写法。
当参数传值为空,即不传值的时候,不对此参数进行筛选。
常规的我们的写法是 数据集 sql 为
select * from test where
(id=? or ? is null)
and
(name =? or ? is null)
这样的写法来执行为空查询全部。但是在参数很多的时候,每个查询,都相当于是对数据库遍历一次,比较影响实际的效率。在这里,使用动态参数就可以很轻易的解决这个问题、。
具体写法如下图所示:
if(@id=="" || @id==null,""," and id ='"+@id+"'")
那么在实际的 sql 上,sql 语句需要有所变化。
改为
select * from test where 1=1 ${id1} ${name1}
多个参数,依照此方法即可。
这样,在参数为空时,实际查询的 sql 为
select * from test where 1=1 。
请问下,web 浏览时,默认根据参数的值查询全部,能不能先不查询数据,等页面出来后参数模板输入值,只根据值查询呀
showReport.jsp 上的这一串代码 直接注释掉。
初始展现的时候就不会加载报表区域了。只是数据集依然会计算。
点击查询,走的是 queryReport.jsp 。
想要不查询数据,那就直接用普通的参数方式就行,不用这么麻烦。
这个是控制显示。 web 预览加载时,还是会计算数据。 只能给报表参数加查询不到的值了。谢谢你的回复