我无法在Jaspersoft Studio中向我的图表添加两个系列。这里是我的XML的简化版本:
<test>
<result name="A">
<point x="10" y="-5"/>
<point x="20" y="-1"/>
<point x="30" y="3"/>
</result>
<result name="B">
<point x="11" y="-5"/>
<point x="19" y="-1"/>
<point x="25" y="3"/>
</result>
</test>
所以我想在图表上放置两个系列,一个用于结果A,一个用于结果B。我已经为A创建了一个数据集:
<subDataset name="res_a">
<property name="com.jaspersoft.studio.data.defaultdataadapter" value="XMLAdapter"/>
<queryString language="xPath">
<![CDATA[/test/result[@name = 'A'/point]]]>
</queryString>
<field name="x_a" class="java.lang.String">
<fieldDescription><![CDATA[@x]]></fieldDescription>
</field>
<field name="y_a" class="java.lang.String">
<fieldDescription><![CDATA[@y]]></fieldDescription>
</field>
</subDataset>
并将其添加到图表中:
<xyLineChart>
<chart evaluationTime="Report">
<reportElement x="0" y="0" width="780" height="340"/>
</chart>
<xyDataset>
<dataset>
<datasetRun subDataset="res_a">
<dataSourceExpression><![CDATA[((net.sf.jasperreports.engine.data.JRXmlDataSource)$P{REPORT_DATA_SOURCE}).subDataSource("/test/result[@name = 'A']/point")]]></dataSourceExpression>
</datasetRun>
</dataset>
<xySeries>
<seriesExpression><![CDATA["RESULTS A"]]></seriesExpression>
<xValueExpression><![CDATA[Double.parseDouble( $F{x})]]></xValueExpression>
<yValueExpression><![CDATA[Double.parseDouble( $F{y})]]></yValueExpression>
</xySeries>
</xyDataset>
[...]
</xyLineChart>
这可以正常工作,并在图表上显示一条曲线。但是,如何将其他结果添加到同一图表?我是否要创建第二个数据集?在图表的外部还是内部?我尝试了几种方法,但都没有用,每次都给我错误。
感谢您的任何帮助!
您不能将两个数据集用于图表。您可以做的是将单个数据集用于结果A和结果B。