微信公众号:次世代数据技术 关注可了解更多的教程。问题或建议,请公众号留言或联系本人; 如果您有报表开发需求或者定制化功能开发,也可以联系本人; 微信号:weibw162
本教程视频讲解可以关注本人B站进行观看:次世代数据技术 同时,您也可以在抖音及微信视频号平台搜索次世代数据技术进行观看。
一、需求描述
在制作查询报表时,某些场景下,我们是需要打开报表时立马显示表头,但是不显示具体的数据,只有点击查询时才会显示具体数据。针对此类需求本文提供一种方案。
本方案的实现其实非常简单,步骤如下:
- 在数据集中增加一个标记参数
flag
,并将参数转换成参数栏控件,设置其默认值为0。 - 在数据集中通过判断参数
flag
的值来动态控制数据集返回数据。 - 通过自定义按钮进行
flag
参数值的调整及报表查询。
注1:不支持移动端使用。注2:本文涉及到的技术及流程均仅在FineReport 11.0 版本进行实际验证,如果您在使用过程中出现问题可以联系本作者。
二、具体操作
第一步
改造现有数据集,增加flag
参数,并通过判断flag参数的值,动态增加插值1=1
及1=0
。 其中,where 1=1
表示恒等,where 1=0
表示恒不等,即查到的数据永远返回0条。
SELECT * FROM S产品
where ${if(flag==1,'1=1','1=0')}
${if(len(产品id)==0,"","and 产品ID ='"+产品id+"'")}
limit 10
SELECT * FROM S产品
where ${if(flag==1,'1=1','1=0')}
${if(len(产品id)==0,"","and 产品ID ='"+产品id+"'")}
limit 10
1
2
3
4
2
3
4
然后在参数栏中增加该参数对应控件,设置其不可见,并设置默认值为0。
第二步
将点击查询前不显示报表内容
取消勾选。
第三步
将原有的查询按钮删除,并新增一个自定义按钮。并增加一个点击事件,填入如下代码。
javascript
_g().getParameterContainer().getWidgetByName("flag").setValue(1);
_g().parameterCommit();
_g().getParameterContainer().getWidgetByName("flag").setValue(1);
_g().parameterCommit();
1
2
2
以上配置都结束后,点击预览即可看到我们需要的效果。
三、模板文件下载
扫码即可下载文档示例模板及其他代码文件 如果您在阅读或实际操作过程中有问题,可以随时添加作者好友进行咨询。