如何使用JSON数据创建JasperReports条形图?

时间:2014-09-18 15:19:39

标签: json jasper-reports jfreechart

我有一个填充了JSON数据的报告。我现在正试图弄清楚如何构造我的JSON,以便我可以在饼图中显示一些数据。任何人都可以提供一个如何在饼图中使用JSON数据的示例吗?

1 个答案:

答案 0 :(得分:1)

我明白了!我需要添加一个subDataset元素来定义我的queryString

<subDataset name="pieDataSet" whenResourceMissingType="Empty" uuid="6e90f719-ceb8-4ecd-9d24-4aa8e07f8e74">
    <parameter name="chartData" class="java.lang.String"/>
<queryString>
        <![CDATA[chartData]]>
</queryString>
    <field name="name" class="java.lang.String">
        <fieldDescription><![CDATA[name]]></fieldDescription>
    </field>
    <field name="value" class="java.lang.Integer">
        <fieldDescription><![CDATA[value]]></fieldDescription>
    </field>
</subDataset>

然后使用subDatasetpieChart元素引用dataset元素中的datasetRun,如下所示:

<pieChart>
    <chart isShowLegend="true" evaluationTime="Report">
        <reportElement x="50" y="0" width="200" height="200" uuid="6c0f07b9-47c5-4a3c-a06a-62b4acda0050"/>
        <box>
            <pen lineWidth="1.0"/>
        </box>
        <chartTitle position="Top">
            <titleExpression><![CDATA["My Pie chart"]]></titleExpression>
        </chartTitle>
        <chartSubtitle/>
        <chartLegend/>
    </chart>
    <pieDataset>
        <dataset>
            <datasetRun subDataset="pieDataSet" uuid="b115e88a-5865-4354-a765-6f629141fef5">
                <dataSourceExpression><![CDATA[((net.sf.jasperreports.engine.data.JsonDataSource)$P{REPORT_DATA_SOURCE}).subDataSource("chartData")]]></dataSourceExpression>
            </datasetRun>
        </dataset>
        <keyExpression><![CDATA[$F{name}]]></keyExpression>
        <valueExpression><![CDATA[$F{value}]]></valueExpression>
    </pieDataset>
    <piePlot>
        <plot/>
        <itemLabel/>
    </piePlot>
</pieChart>