How to create a subreports inside of a single main report and this subreport should loop twice or thrice based on the data . I want to fill the data in my Java Spring Boot application only from the Java side. I able to create a PDF with just subreport displayed only once.
Example:
//Main report.jrxml
User No:u123
//sub reports.jrxml
Sub User Number: u123-01
| Item | Cost Price | Sell Price |
|---|---|---|
| Orange | 90.00 | 50.00 |
| Banana | 10.00 | 9.00 |
| Apple | 100.00 | 90.00 |
//sub reports.jrxml
Sub User Number: u123-02
| Item | Cost Price | Sell Price |
|---|---|---|
| Cake | 9.00 | 5.00 |
| Milk | 10.00 | 9.00 |
| Chips | 10.00 | 8.00 |
I tried generating one pdf with one table data, couldn't find a way to loop the sub report.
I discovered a method to cycle through subreports by passing data from Java as a JRBeanCollectionDataSource. In my primary report, I retrieve the data as follows:
<field name="subreportDTOList" class="java.util.List"/>.This data is then passed to the subreport via the dataSourceExpression:
<dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{subreportDTOList})]]></dataSourceExpression>In the subreport, I can directly access the values within my DTO. Since the DTO is a list, it automatically loops through the subreport as needed.