Domanda

Sto usando iReport e ho bisogno di creare un sotto-report usando un XML DataSource .

Avrò solo un XML per il rapporto fori. Qualcosa del genere:

<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>

Il rapporto principale avrà i dettagli collegati alle domande, ogni domanda avrà molte opzioni. Ogni sotto-rapporto deve essere collegato alle opzioni per la domanda ... Beh, dettaglio principale.

Tutto ciò che ho potuto trovare con alcuni googling era usare SQL , voglio usare XPath .

È stato utile?

Soluzione

Dai un'occhiata al JRXmlDataSource JavaDoc . Ci sono esempi che mostrano come è fatto.

Altri suggerimenti

Crea prima il tuo sottoreport come rapporto usando xpath. Quindi creare un elemento sottoreport nel rapporto principale e collegare il sottoreport al rapporto principale. di seguito è riportato un esempio di sottoreport:

<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>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top