我有一个由MyJavaBean集合支持的报告。
在本报告中,我(当然)可以获取MyJavaBean的属性,在Fields中声明它们并在详细信息带上使用它,到目前为止一直很好。
现在我希望能够将此MyJavaBean作为子报表的参数传递。看来我希望能够传递javabean本身,而不是它的一个属性。
如何在详细信息频段中引用我的收藏中的一个元素?
答案 0 :(得分:15)
要声明引用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
设置为所需元素的键。但是,如果您希望某些报表元素引用集合中的一个对象,而其余的带引用另一个对象,那么在详细信息区域中嵌套另一个子报表可能会更好。