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
DDDoriginal
2024-11-29 22:52:11168parcourir

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

}

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>

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!

Déclaration:
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