Cara mengakses data daripada java.util.List dalam JavaBean menggunakan JRBeanCollectionDataSource
Panduan ini menerangkan cara memaparkan data yang disimpan dalam Senaraikan harta JavaBean menggunakan JRBeanCollectionDataSource dalam anda laporan.
Masalahnya:
Pertimbangkan JavaBean dengan sifat yang memegang java.util.Senarai nilai. Bagaimanakah kami boleh mengekstrak dan memaparkan data senarai ini dalam jalur Butiran laporan?
Penyelesaian:
Untuk mencapainya, kami boleh memanfaatkan dua teknik utama:
1. Menggunakan Ungkapan _THIS:
Dalam ungkapan medan, gunakan ungkapan _THIS untuk mengakses tika semasa JavaBean. Ini membolehkan anda mengekstrak sifat java.util.List daripada kacang.
2. Senaraikan Komponen dalam Jalur Terperinci:
Gunakan komponen Senarai dalam jalur Terperinci. Ikat DataSourceExpressionnya kepada JRBeanCollectionDataSource baharu yang membungkus java.util.List yang diperoleh menggunakan ungkapan _THIS. Kemudian, dalam kandungan senarai, tentukan TextField untuk memaparkan nilai individu daripada senarai.
Contoh Kod:
JavaBean:
public class BeanWithList { private List<String> cities; private Integer id; // public getters for bean properties }
JRXML Fail:
<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>
Keputusan:
Laporan akan memaparkan ID JavaBean bersama-sama senarai bandar yang disimpan dalam harta bandarnya.
Atas ialah kandungan terperinci Bagaimana untuk Memaparkan Harta Senarai JavaBean dalam Laporan JasperReports?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!