永洪tech-Bella
2018-8-3 16:00:47
发布在问答
<永洪tech>批量提交报表中脚本设置筛选组件默认值的处理
在报表中做批量提交是一个咱们最佳实践推荐的方式,可以提升报表的性能,特别是在咱们报表中筛选项比较多的情况下。很多情况,咱们并不是希望选一个筛选项,加载一遍数据,而是希望选完所有条件后点击查询按钮,查出想要的数据,这种情况非常适合使用批量提交哦,链接:http://www.yonghongtech.com/webb ... F%E6%8F%90%E4%BA%A4。但是如果咱们的筛选条件用脚本设置了默认值,那么直接做批量提交会遇到问题哦,需要额外处理一下。有需要的小公举接着往下看。
首先看一个错误的例子:有脚本设置筛选条件默认值的情况下直接做批量提交,效果如下:
(比如设置了列表过滤1使用脚本:列表过滤1.setSelectedObjects(['伯爵茶'],STRING),默认选中'伯爵茶',查看的时候,当选了其他产品,然后点击提交按钮的时候,产品种类又变成了“伯爵茶”,其他选中的值,自动没了)
很多小伙伴也有遇到一样的情况吧,不管筛选组件是啥,列表过滤,文本参数,或者是其他,都是一样的,只要 脚本设置了默认值,并用了批量提交,就会有这种情况。那么是不是这两个方式不能兼容呢,回答是肯定的,当然可以。方式如下:
1.编辑报告的时候编辑参数,添加一个参数,参数名type,数据类型:整数,默认值:0,并取消弹出。
2.修改仪表盘-装载时运行脚本中,给筛选条件设置默认值的脚本,比如设置默认值的脚本是:列表过滤1.setSelectedObjects(['伯爵茶'],STRING),修改为如下:
if(param['type']==0){
列表过滤1.setSelectedObjects(['伯爵茶'],STRING)
}
//意思是只有在参数type为0时,才设置列表参数1的默认值为“伯爵茶”。由于参数的默认值是0,那么打开报表的时候这个脚本是会执行的。
3.提交按钮,提交时运行脚本由原来的refreshData()变成:
param['type']=1
refreshData()
//设置参数type的值为1,也就是说提交的时候不执行给列表过滤1复制的脚本,也就不会出点点击按钮,选中的值被清空了,又变成了默认值的情况。
就只有这三步哟,已经都完成了,现在预览或查看看看效果。
看到这里应该明白为什么咱们批量提交+筛选组件设置默认值为什么有问题,以及需要怎么修改了吧,不明白的从头再来一遍哟。 
|
免责声明:本文不代表本站立场,且不构成任何建议,请谨慎对待。
版权声明:作者保留权利,不代表本站立场。