如何在 Jasper Reports 中的子报表内进行循环

问题描述 投票:0回答:1

如何通过循环子报表在单个主报表内创建两个子报表。我只想从 Java 端填充 Java Spring Boot 应用程序中的数据。例如,我可以创建一个仅包含一个子报表的 PDF。数据填充在我的 Java Spring Boot 应用程序中,无需连接到 Jasper 或 JRXML 中的数据库。

示例:
//主报告.jrxml
用户号:u123

//子报告.jrxml
子用户编号:u123-01

项目 成本价 售价
橙色 90.00 50.00
香蕉 10.00 9.00
苹果 100.00 90.00

//子报告.jrxml
子用户编号:u123-02

项目 成本价 售价
蛋糕 9.00 5.00
牛奶 10.00 9.00
薯片 10.00 8.00

enter image description here

我尝试用一个表格数据生成一个 pdf,但找不到循环子报告的方法。

jasper-reports
1个回答
0
投票

我发现了一种通过将 Java 中的数据作为 JRBeanCollectionDataSource 传递来循环浏览子报表的方法。在我的主要报告中,我检索数据如下:

<field name="subreportDTOList" class="java.util.List"/>

然后,该数据通过 dataSourceExpression 传递到子报表:

<dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{subreportDTOList})]]></dataSourceExpression>

在子报表中,我可以直接访问 DTO 中的值。由于DTO是一个列表,它会根据需要自动循环子报表。

© www.soinside.com 2019 - 2024. All rights reserved.