Rumah >Java >javaTutorial >Bagaimana untuk Memaparkan Harta Senarai JavaBean dalam Laporan JasperReports?

Bagaimana untuk Memaparkan Harta Senarai JavaBean dalam Laporan JasperReports?

DDD
DDDasal
2024-11-29 22:52:11289semak imbas

How to Display a JavaBean's List Property in a JasperReports Report?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn