Comment créer des sous-rapports à l'aide de XML DataSources dans JasperReports?

StackOverflow https://stackoverflow.com/questions/479678

  •  20-08-2019
  •  | 
  •  

Question

J'utilise iReport et je dois créer un sous-rapport à l'aide d'une source de données XML .

Je n'aurai qu'un seul XML pour le rapport de trou. Quelque chose comme ça:

<question>
  <text>What do you think about SO?</text>
  <options>
    <option>Like it</option>
    <option>Really like it</option>
    <option>Love it</option>
  </options>
</question>

Le rapport principal aura ses détails liés aux questions, chaque question aura de nombreuses options. Chaque sous-rapport doit être lié aux options de la question ... Eh bien, maître-détail.

Tout ce que je pouvais trouver avec googling utilisait SQL , je souhaite utiliser XPath .

Était-ce utile?

La solution

Jetez un coup d'œil à la JRXmlDataSource JavaDoc . Il y a des exemples qui montrent comment faire.

Autres conseils

Créez d'abord votre sous-rapport en tant que rapport à l'aide du chemin xpath. Créez ensuite un élément de sous-rapport dans le rapport parent et liez le sous-rapport au rapport parent. Voici un exemple d'élément de sous-rapport:

<subreport>
    <reportElement x="0" y="20" width="555" height="100"/>
    <subreportParameter name="XML_DATE_PATTERN">
        <subreportParameterExpression><![CDATA[$P{XML_DATE_PATTERN}]]></subreportParameterExpression>
    </subreportParameter>
    <subreportParameter name="XML_DATA_DOCUMENT">
        <subreportParameterExpression><![CDATA[$P{XML_DATA_DOCUMENT}]]></subreportParameterExpression>
    </subreportParameter>
    <subreportParameter name="XML_LOCALE">
        <subreportParameterExpression><![CDATA[$P{XML_LOCALE}]]></subreportParameterExpression>
    </subreportParameter>
    <subreportParameter name="XML_NUMBER_PATTERN">
        <subreportParameterExpression><![CDATA[$P{XML_NUMBER_PATTERN}]]></subreportParameterExpression>
    </subreportParameter>
    <subreportParameter name="XML_TIME_ZONE">
        <expressionistic><![CDATA[$P{XML_TIME_ZONE}]]></subreportParameterExpression>
    </subreportParameter>
    <connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression>
    <subreportExpression class="java.lang.String"><![CDATA[$P{SUBREPORT_DIRECTORY} + "PS_Product_Match.jasper"]]></subreportExpression>
</subreport>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top