2009-01-26 6 views
4

J'utilise iReport et j'ai besoin de créer un sous-rapport en utilisant un XML DataSource.Comment créer des sous-rapports en utilisant XML DataSources dans JasperReports?

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

<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 son détail lié aux questions, chaque question aura beaucoup d'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 veux utiliser XPath .

+0

Ces deux messages peuvent aider: [Datasources XML] (http://community.jaspersoft.com/wiki/xml-datasources) & [Utiliser un sous-état dans un rapport qui est connecté à une source de données xml] (http://community.jaspersoft.com/wiki/use-subreport-report-which-connected-xml-datasource) –

Répondre

0

Créez votre sous-rapport en tant que rapport d'abord en utilisant le xpath. Créez ensuite un élément de sous-rapport dans le rapport parent et liez le sous-rapport au rapport parent. ci-dessous est un élément de sous-état de l'échantillon:

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