Report Studio之JavaScript技巧三、重运行报表时清空listbox控件中的选择

浏览: 2107

有一张用户可以从列表框中复选product lines的报表。当用户重新运行报表时,之前在列表框中的选择被系统自动记住了。

现在用户希望在重新运行报表时,之前所有的选择都被清空。

 

准备工作

 

任创建一张在Product Lines上应用了过滤的报表,为product line创建一个Listbox类型的prompt,并设置其multi-select属性为Yes

 

如何实施

1. 和上个示例类似,创建一个span标签嵌套listbox,并定义此spanIDA1

Clipboard Image.png

2. prompt page的页脚,定义一个新的HTML项目。代码为:

<script>

var theSpan = document.getElementById("A1");

var a = theSpan.getElementsByTagName("A");

for( var i = a.length-1; i >= 0; i-- )

{ var link = a[i];

if( typeof(link.id) == "string" && link.id.match(/PRMT_(SV|LIST)_LINK_DESELECT_/) )

{link.fireEvent("onclick");}

}

</script>

3. 运行报表,任选product line。之后点击报表左上角的Run按钮重运行报表。注意之前在prompt中的选择已经被清空。

Clipboard Image.png

工作原理

 

在使用listbox控件时,Report Studio提供了两个链接:Select allDeselect all。这里我们俘获了Deselect all链接,并使用fireevent()方法调用它。

 

更多

 

类似的,我们可以通过检索PRMT_(SV|LIST)_LIST_SELECT来俘获Select all链接。我们还可以通过以下的方法删除链接:

link.parentNode.removeChild(link)


推荐 0
本文由 zhengyi1943 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册