如何在jasperreports中访问数据源的根元素

时间:2011-07-29 14:31:27

标签: jasper-reports

我有一个由MyJavaBean集合支持的报告。

在本报告中,我(当然)可以获取MyJavaBean的属性,在Fields中声明它们并在详细信息带上使用它,到目前为止一直很好。

现在我希望能够将此MyJavaBean作为子报表的参数传递。看来我希望能够传递javabean本身,而不是它的一个属性。

如何在详细信息频段中引用我的收藏中的一个元素?

1 个答案:

答案 0 :(得分:15)

引用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设置为所需元素的键。但是,如果您希望某些报表元素引用集合中的一个对象,而其余的带引用另一个对象,那么在详细信息区域中嵌套另一个子报表可能会更好。