Jasperreports使用来自XML的2个不同数据集的2个系列创建图表

问题描述 投票:0回答:1

我无法在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>

这可以正常工作,并在图表上显示一条曲线。但是,如何将其他结果添加到同一图表?我是否要创建第二个数据集?在图表的外部还是内部?我尝试了几种方法,但都没有用,每次都给我错误。

感谢您的任何帮助!

xml charts jasper-reports
1个回答
1
投票

您不能将两个数据集用于图表。您可以做的是将单个数据集用于结果A和结果B。

© www.soinside.com 2019 - 2024. All rights reserved.