利用动态参数默认不查询任何数据
该帖子主要实现的功能是:
第一次展现报表不显示全部数据,通过参数模板输入参数查询到数据之后,当所有的参数再次置空的时候要做到显示全部数据。
第一步:制作主报表的,拿我们的自带的数据库表雇员表举例:
之前我们的 sql 写 or ? is null 是当参数为空的时候 时候查询全部, 然后我们在这个 sql 语句后面拼接一个动态参数 ${ifSelect}
sql 语句为 : SELECT * FROM 雇员 where 雇员 ID =? or ? is null ${ifSelect}
1) 在数据集参数增加两个参数 arg1.
2) 报表参数增加两个普通参数 arg1 和 selectFlag ,增加一个动态参数 ifSelect 动态参数的值表达式写 if(selectFlag!=“1”,“and 1=2”,"")
第二步:制作参数表单。
1)设置一个单元格的 web 变量名为 arg1 。 用来给主报表的雇员 ID 传递参数值
2) 给某一个单元格默认值,直接在单元格写 1 。 然后设置 web 变量名为 selectFlag。然后隐藏这个单元格。
保存报表和参数模板。发布报表即可。
web 预览的时候,会根据参数默认值查询,能否设置先不查询,等参数模板输入参数后再查
如果原始需求是:默认一开始只展现参数模板,当用户点击查询后,再查询数据进行报表结果展现,那么可以注释掉报表 jsp 里的一段标签配置:http://c.raqsoft.com.cn/article/1576635692049 操作可以参考这个文档
这个只是展示。 但数据集还是会运算,这个过程对参数模板展现在页面上来说还是很慢。 只能设置查询不到的值了
可否研究下,
不是呀,用 showReport.jsp 展现报表时,注释掉标签,就不会计算报表了,也就不会去计算数据集
当点击查询后会走 queryReport.jsp,此时才会去计算报表数据集,所以链接里的方法是可以的
默认有这个效果的,如果您使用的版本中没有这个功能,建议您下载官网最新版本使用
这个是参数查询后才会有的提示, 我的意思是在参数面板还没出现之前,数据有些多的时候,出来的很慢。
单个报表计算慢的时候也会有,如果没有,使用官网最新的版本或者需要找企业 QQ:800025723 要报表中心的更新文件