润乾集算报表使用defineBean出现的问题

来源:互联网 发布:iphone看txt软件 编辑:程序博客网 时间:2024/06/05 20:07
遇到客户在使用defineBean时,也就是用这样的标签方式,

<report:html name="reportfile1" 

srcType="defineBean"

beanName="reportDefine"

第一次内容是正确的,后面无论操作几次都是第一次的内容了。

我们先来看看defineBean方式发布和reportBean方式发布的区别,两者的相同点很好理解,都需要把raq文件转换成ReportDefine对象,进行相应的处理。而不同点,就是前者是计算之前的报表模板,后者是计算好的报表结果。由于defineBean是没有进行计算的报表对象,那么在definebean方式发布的时候,就需要计算,那么运算的环境如果我们需要让他发生变化的话,那么我们要把这个改变了的context也传递过去,也就是在

srcType="defineBean"

beanName="reportDefine"

的基础上,可能需要加上

contextName=”myContext”
当然这需要

request.setAttribute("reportDefine",rd);

request.setAttribute( “myContext”, context );

这两句做基础。

那么客户遇到这种问题的解决方案就是在jsp页面加上下面这段

String rptName = "RPT_"+Double.toString(Math.random());
    request.setAttribute(rptName,rd);
%>

<report:html name="report1"
    srcType="defineBean"
    beanName="<%=rptName%>"
/>

0 0