Hi,
I am new on JasperReports and I want to learn, what is the main difference when filling the report data by JRBeanCollectionDataSource with Parameters or Fields.
I have a big report which has 10 tables in it. I pass the table datasources as parameters to the report. Should I pass the data to the fields, or passing data to params is just OK?
Thank you for your answers.
5 Answers:
Perhaps my two cents yet:
If you define a complex (nested) java-pojo/bean structure and use the JRBeanCollectionDataSource for your MainReportDataSet at calling the FillManager, so you don't know at this toplevel for what (nested) pojo/bean which substructure existst to pass all possible SubDataSources as parameters from outside!
So using a Field for a SubReportDataSourceExpression is also a good solution in this case - so a simple pojo/bean holding a substructure of childs within a ArrayList<SomeBean> myChilds = new ArrayList<SomeBean>() could easily transformed to a new JRBeanCollectionDataSource to use in a List or SubReport Element as DataSourceExpression: new JRBeanCollectionDataSource($F{MyChilds}
hth + regards
C-Box
Hi Hozawa,
Ok, but how to fill that dataSet? I mean, I can pass the data to dataSet as parameter, than I can pass it to dataSourceExpression of dataSet as below;
<parameter name="list1" class="net.sf.jasperreports.engine.data.JRBeanCollectionDataSource"/>
<datasetRun subDataset="dsList1" uuid="bcc71b8c-7287-427c-a26e-20c49c38c30a">
<dataSourceExpression><![CDATA[$P{list1}]]></dataSourceExpression>
</datasetRun>
Is that a wrong approach? Should I feed the dataSource with Field instead of Parameter?
Thank you.