gpt4 book ai didi

hibernate - 将 POJO 传递给 Jasper Reports 中的子报表

转载 作者:行者123 更新时间:2023-12-04 17:20:21 24 4
gpt4 key购买 nike

我有一个 Hibernate POJO
1.与另一个对象的一对一关联
2.与另一个对象的一对多关联(集合)

我正在尝试创建一个 Jasper 报告,这些关联将转到子报告。
对于多对一关联,我按如下方式传递数据源:

<subreport>
<reportElement x="40" y="16" width="100" height="30"/>
<dataSourceExpression>
<![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{phones})]]>
</dataSourceExpression>
<subreportExpression>
<![CDATA[$P{SUBREPORT_DIR} + "subreport1.jasper"]]>
</subreportExpression>
</subreport>

这工作正常。这是我为一对一关联定义的方式
<subreport>
<reportElement x="25" y="91" width="200" height="59"/>
<dataSourceExpression>
<![CDATA[new net.sf.jasperreports.engine.data.JRBeanArrayDataSource([$F{batchHeaderRecord}] as java.lang.Object[])]]>
</dataSourceExpression>
<subreportExpression><![CDATA[$P{SUBREPORT_DIR} + "batchHeaderReport.jasper"]]>
</subreportExpression>
</subreport>

但是这个是行不通的。有人可以让我知道我哪里出错了吗?

最佳答案

new net.sf.jasperreports.engine.data.JRBeanArrayDataSource([$F{batchHeaderRecord}] as java.lang.Object[])

不是有效的 Java 代码。只需使用
new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource(java.util.Collections.singleton($F{batchHeaderRecord}))

或者
new net.sf.jasperreports.engine.data.JRBeanArrayDataSource(new Object[] {$F{batchHeaderRecord}})

关于hibernate - 将 POJO 传递给 Jasper Reports 中的子报表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8645048/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com