【问题标题】:How to create sub-reports using XML DataSources in JasperReports?如何在 JasperReports 中使用 XML 数据源创建子报表?
【发布时间】:2013-11-25 10:05:44
【问题描述】:
我正在使用 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。
【问题讨论】:
标签:
jasper-reports
ireport
【解决方案2】:
首先使用 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>