So greifen Sie mit JRBeanCollectionDataSource auf Daten aus einer java.util.List in einer JavaBean zu
In dieser Anleitung wird erläutert, wie in einer JavaBean gespeicherte Daten angezeigt werden Listen Sie die Eigenschaft einer JavaBean mit JRBeanCollectionDataSource in Ihren Berichten auf.
Die Problem:
Stellen Sie sich ein JavaBean mit einer Eigenschaft vor, die eine java.util.List von Werten enthält. Wie können wir die Daten dieser Liste extrahieren und im Detailbereich eines Berichts anzeigen?
Die Lösung:
Um dies zu erreichen, können wir zwei Schlüsseltechniken nutzen:
1. Verwenden des _THIS-Ausdrucks:
Verwenden Sie innerhalb des Feldausdrucks den _THIS-Ausdruck, um auf die aktuelle Instanz der JavaBean zuzugreifen. Dadurch können Sie die Eigenschaft java.util.List aus der Bean extrahieren.
2. Listenkomponente im Detailband:
Verwenden Sie eine Listenkomponente im Detailband. Binden Sie seinen DataSourceExpression an eine neue JRBeanCollectionDataSource, die die mit dem _THIS-Ausdruck erhaltene java.util.List umschließt. Definieren Sie dann innerhalb des Listeninhalts ein TextField, um die einzelnen Werte aus der Liste anzuzeigen.
Beispielcode:
JavaBean:
public class BeanWithList { private List<String> cities; private Integer id; // public getters for bean properties }
JRXML Datei:
<field name="id" class="java.lang.Integer"/> <field name="cities" class="java.util.Collection"/> <detail> <band height="20"> <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> </band> </detail>
Ergebnis:
Der Bericht zeigt die ID des JavaBean zusammen mit der Liste der Städte an, die in seiner Städteeigenschaft gespeichert sind.
Das obige ist der detaillierte Inhalt vonWie zeige ich die Listeneigenschaft einer JavaBean in einem JasperReports-Bericht an?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!