我有一个填充了JSON数据的报告。我现在正试图弄清楚如何构造我的JSON,以便我可以在饼图中显示一些数据。任何人都可以提供一个如何在饼图中使用JSON数据的示例吗?
答案 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>
然后使用subDataset
和pieChart
元素引用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>