Heim  >  Artikel  >  Java  >  Wie zeige ich die Listendaten einer JavaBean im Detailband eines Jasper-Berichts an?

Wie zeige ich die Listendaten einer JavaBean im Detailband eines Jasper-Berichts an?

Barbara Streisand
Barbara StreisandOriginal
2024-11-23 12:30:14124Durchsuche

How to Display a JavaBean's List Data in a Jasper Report's Detail Band?

JRBeanCollectionDataSource: Anzeigen von Daten aus einer java.util.List in JavaBeans

Einführung

JavaBeans enthalten oft Sammlungen von Daten. Mit JRBeanCollectionDataSource können Sie Daten aus diesen Sammlungen auf verschiedene Arten anzeigen.

Frage

Wie kann ich Daten aus einer java.util.List, die in einem JavaBean gespeichert ist, im Detailband eines anzeigen? Jasper-Bericht?

Antwort

Wichtige Überlegungen für Lösung:

  • Verwenden Sie den _THIS-Ausdruck, um auf das JavaBean-Objekt zuzugreifen.
  • Verwenden Sie die List-Komponente (jr:list) im Detailband.

Implementierung

Java Klasse:

// JavaBean with a list of strings
public class BeanWithList {
  private List<String> cities;
  private Integer id;

  // Getter methods
}

JRXML:

<jasperReport>
  <subDataset name="dataset1">
    <field name="city" class="java.lang.String">
      <fieldDescription><![CDATA[_THIS]]></fieldDescription>
    </field>
  </subDataset>
  <field name="id" class="java.lang.Integer"/>
  <field name="cities" class="java.util.Collection"/>

  <title>
    <staticText>Bean with List sample</staticText>
  </title>

  <detail>
    <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>
  </detail>
</jasperReport>

Ergebnis

Dieser Ansatz generiert einen Bericht, der das ID-Feld des anzeigt JavaBean sowie die Inhalte der Listenelemente innerhalb einer Unterberichtskomponente im Detailband.

Das obige ist der detaillierte Inhalt vonWie zeige ich die Listendaten einer JavaBean im Detailband eines Jasper-Berichts an?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn