润乾报表通过js清除钻取后url
问题背景:
1、 从一张报表钻取到带有参数模板的报表
2、 url中传递的参数作为目标报表的默认查询条件
问题出现了,当清除表单内容进行查询的时候,发现默认的查询条件仍然存在。这是因为保存在url中的参数一直存在,这样每次点击查询重新加载报表的时候参数模板都会获取到url中传递的参数。这样的结果我们显然不愿意看到。
接下来我们就使用一种重写url的办法解决这个问题
解决步骤:
1、 连接demo数据源,制做三张报表,一张钻取用(testlink.raq),一张参数模板(testparam_arg.raq),一张主表(testparam.raq)。
2、 发布报表testlink.raq的jsp——testlink.jsp的主要代码
<report:html name=”report1″ reportFileName=”testlink.raq”
funcBarLocation=”top”
exceptionPage=”/reportJsp/myError2.jsp”
/>
发布参数模板和主表的jsp——testparam.jsp的主要代码
<report:param name=”form1″ paramFileName=”testparam_arg.raq”
needSubmit=”yes”
/>
<report:html name=”report1″ reportFileName=”testparam.raq”
funcBarLocation=”top”
params=”<%=param.toString()%>”
exceptionPage=”/reportJsp/myError2.jsp”
/>
<script language=”JavaScript” type=”text/javascript”>
function updateUrl(){
var oldurl = document.form1.resultPage.value
var newurl = ‘/jsp/testparam.jsp’;
document.form1.resultPage.value = newurl;
}
</script>
<script language=”JavaScript” for=”window” event=”onload” >
updateUrl()
</script>
3、首先访问testlink.jsp,当点击进入下一页面的时候,我们发现初次加载的时候参数传递过来了,当清楚查询条件后查询,所有的记录都可以查出来,说明清楚参数成功。
总结:
此种方法的关键在于上面代码中的updateUrl() JS函数,通过对document.form1.resultPage.value重新赋值,便达到了清楚url参数的效果。