Maison > Java > javaDidacticiel > Comment afficher la propriété List d'un JavaBean dans un rapport JasperReports ?

Comment afficher la propriété List d'un JavaBean dans un rapport JasperReports ?

DDD
Libérer: 2024-11-29 22:52:11
original
252 Les gens l'ont consulté

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

Comment accéder aux données d'une java.util.List dans un JavaBean à l'aide de JRBeanCollectionDataSource

Ce guide explique comment afficher les données stockées dans un Liste la propriété d'un JavaBean en utilisant JRBeanCollectionDataSource dans vos rapports.

Le Problème :

Considérez un JavaBean avec une propriété qui contient une java.util.List de valeurs. Comment pouvons-nous extraire et afficher les données de cette liste dans la bande Détail d'un rapport ?

La solution :

Pour y parvenir, nous pouvons exploiter deux techniques clés :

1. Utilisation de l'expression _THIS :
Dans l'expression de champ, utilisez l'expression _THIS pour accéder à l'instance actuelle du JavaBean. Cela vous permet d'extraire la propriété java.util.List du bean.

2. Composant de liste dans la bande de détails :
Utilisez un composant de liste dans la bande de détails. Liez son DataSourceExpression à un nouveau JRBeanCollectionDataSource qui encapsule le java.util.List obtenu à l'aide de l'expression _THIS. Ensuite, dans le contenu de la liste, définissez un TextField pour afficher les valeurs individuelles de la liste.

Exemple de code :

JavaBean :

public class BeanWithList {

    private List<String> cities;
    private Integer id;

    // public getters for bean properties

}
Copier après la connexion

JRXML Fichier :

<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>
Copier après la connexion

Résultat :

Le rapport affichera l'ID du JavaBean ainsi que la liste des villes stockées dans sa propriété villes.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal