如何通过循环子报表在单个主报表内创建两个子报表。我只想从 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 |
我尝试用一个表格数据生成一个 pdf,但找不到循环子报告的方法。
我发现了一种通过将 Java 中的数据作为 JRBeanCollectionDataSource 传递来循环浏览子报表的方法。在我的主要报告中,我检索数据如下:
<field name="subreportDTOList" class="java.util.List"/>
。
然后,该数据通过 dataSourceExpression 传递到子报表:
<dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{subreportDTOList})]]></dataSourceExpression>
在子报表中,我可以直接访问 DTO 中的值。由于DTO是一个列表,它会根据需要自动循环子报表。