我有一个由MyJavaBean集合支持的报告。
在这份报告中,我(当然)可以获得MyJavaBean的属性,这些属性在Fields中声明,并在详细信息区域中使用,到目前为止,效果很好。
现在,我希望能够将此MyJavaBean作为子报表的参数传递。看,我希望能够传递javabean本身,而不是其属性之一。
我如何引用detais乐队中我的收藏中的一个元素?
最佳答案
引用一个bean
要声明一个引用bean本身而不是其属性之一的字段,请将字段描述设置为关键字_THIS
。
<field name="myJavaBean" class="com.your.package.MyJavaBean">
<fieldDescription>_THIS</fieldDescription>
</field>
然后,您可以像其他任何字段一样将此值作为子报表参数传递。<subreportParameter name="myJavaBean">
<subreportParameterExpression>
<![CDATA[$F{myJavaBean}]]>
</subreportParameterExpression>
</subreportParameter>
可以按常规方式调用Bean中的方法,即$F{myJavaBean}.someMethod()
引用集合中的单个元素根据您在此处的操作,可能会更加困难。如果只想查看单个元素的详细信息,请将带上的
printWhenExpression
设置为所需元素的键。但是,如果您想让某些报表元素引用集合中的一个对象,而其他区域则引用另一个对象,则最好在明细区域中嵌套另一个子报表。