Maison > Java > javaDidacticiel > Comment afficher la liste d'un JavaBean dans la bande de détails de JasperReports ?

Comment afficher la liste d'un JavaBean dans la bande de détails de JasperReports ?

Linda Hamilton
Libérer: 2024-11-25 22:11:12
original
241 Les gens l'ont consulté

How to Display a JavaBean's List in JasperReports' Detail Band?

JavaBeancontenant java.util.List : affichage dans JasperReports

Problème

A JavaBean contient un java.util.List. Comment afficher les données de cette liste dans la bande Détail d'un document JasperReports ?

Solution

  1. Utiliser _THIS Expression : Utiliser la _CETTE expression pour accéder aux membres du JavaBean.
  2. Appliquer Composant jr:list : Incorporez un composant jr:list dans la bande Detail pour parcourir les éléments de la liste.

Exemple de code de travail

// Java source to generate the report
...

// DataSource using JRBeanCollectionDataSource
private static JRDataSource getDataSource() {
    Collection<BeanWithList> coll = ...;
    return new JRBeanCollectionDataSource(coll);
}

// JavaBean
public class BeanWithList {
    private List<String> cities;
    // ...

    // Ensure a public getter for field extraction
    public List<String> getCities() {
        return this.cities;
    }
}

// jrxml file
...

// Subdataset for iterating through the list
<subDataset name="dataset1">
    <field name="city" class="java.lang.String">
        <fieldDescription><![CDATA[_THIS]]></fieldDescription>
    </field>
</subDataset>

// Detail band with jr:list component
<detail>
    ...
    <componentElement>
        <!-- jr:list component -->
        <jr:list ...>
            <datasetRun subDataset="dataset1">
                <!-- DataSource expression using JRBeanCollectionDataSource -->
                <dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{cities})]]></dataSourceExpression>
            </datasetRun>
            <jr:listContents ...>
                <textField ...>
                    <textFieldExpression><![CDATA[$F{city}]]></textFieldExpression>
                </textField>
            </jr:listContents>
        </jr:list>
    </componentElement>
    ...
</detail>
...
Copier après la connexion

Résultats

Cette configuration génère un rapport affichant les données de la liste au sein du Détail bande.

Informations supplémentaires

  • D'autres questions pertinentes abordent ce sujet :

    • "Comment imprimer une liste de chaînes contenues dans une autre liste dans iReport?"
    • "Passer la liste des objets de type primitif comme source de données pour le sous-rapport"

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 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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal