4

我正在使用iReport ,我需要使用XML DataSource创建子报告。

我将只有一个用于孔报告的 XML。像这样的东西:

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

主报告将详细链接到问题,每个问题都有很多选项。每个子报告都必须链接到问题的选项......嗯,主细节。

我可以通过谷歌搜索找到的所有内容都是使用SQL,我想使用XPath

4

2 回答 2

2

查看JRXmlDataSource JavaDoc。有例子说明它是如何完成的。

于 2009-01-26T12:53:17.377 回答
0

首先使用 xpath 将子报表创建为报表。然后在父报表中创建子报表元素并将子报表链接到父报表。下面是一个示例子报表元素:

<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>
于 2011-05-26T17:19:07.230 回答