JavaBeans enthalten oft Sammlungen von Daten. Mit JRBeanCollectionDataSource können Sie Daten aus diesen Sammlungen auf verschiedene Arten anzeigen.
Wie kann ich Daten aus einer java.util.List, die in einem JavaBean gespeichert ist, im Detailband eines anzeigen? Jasper-Bericht?
Wichtige Überlegungen für Lösung:
Java Klasse:
// 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>
Dieser Ansatz generiert einen Bericht, der das ID-Feld des anzeigt JavaBean sowie die Inhalte der Listenelemente innerhalb einer Unterberichtskomponente im Detailband.
Das obige ist der detaillierte Inhalt vonWie zeige ich die Listendaten einer JavaBean im Detailband eines Jasper-Berichts an?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!