Les JavaBeans contiennent souvent des collections de données. JRBeanCollectionDataSource vous permet d'afficher les données de ces collections de différentes manières.
Comment puis-je afficher les données d'une java.util.List stockée dans un JavaBean dans la bande Détail d'un Rapport Jasper ?
Considérations clés pour Solution :
Java Classe :
// JavaBean with a list of strings public class BeanWithList { private List<String> cities; private Integer id; // Getter methods }
JRXML :
<jasperReport> <subDataset name="dataset1"> <field name="city" class="java.lang.String"> <fieldDescription><![CDATA[_THIS]]></fieldDescription> </field> </subDataset> <field name="id" class="java.lang.Integer"/> <field name="cities" class="java.util.Collection"/> <title> <staticText>Bean with List sample</staticText> </title> <detail> <textField> <reportElement x="0" y="0" width="100" height="20"/> <textFieldExpression><![CDATA[$F{id}]]></textFieldExpression> </textField> <componentElement> <reportElement x="100" y="0" width="400" height="20"/> <jr:list> <datasetRun subDataset="dataset1"> <dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{cities})]]></dataSourceExpression> </datasetRun> <jr:listContents height="20" width="400"> <textField> <reportElement x="0" y="0" width="100" height="20"/> <textFieldExpression><![CDATA[$F{city}]]></textFieldExpression> </textField> </jr:listContents> </jr:list> </componentElement> </detail> </jasperReport>
Cette approche générera un rapport affichant le champ id du JavaBean, ainsi que le contenu des éléments List dans un composant de sous-rapport dans la bande Détail.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!