是否可以在ChartCustomizer中获取参数值(传递给JasperFillManager的fillReport方法)?
示例:
Map<String, Object> params = new HashMap<String, Object>();
params.put("SOME_PARAM", "some string");
JasperPrint jp = JasperFillManager.fillReport(jr, params, dataSource);
然后在customize函数中,paramValue总是为null:
public void customize(JFreeChart freeChart, JRChart jasperChart) {
String paramValue = (String)getParameterValue("SOME_PARAM"); // always null
}
预期结果:paramValue
等于"some string"
;
实际结果:paramValue
等于null
。
答案 0 :(得分:0)
方法getParameterValue
是指图表参数,这些参数与报表参数不同。
在设计中,您必须在图表级别定义参数:
<categoryDataset>
<dataset>
<datasetRun subDataset="chartDataset">
<datasetParameter name="SOME_CHART_PARAM">
<datasetParameterExpression><![CDATA[$P{SOME_PARAM}]]></datasetParameterExpression>
</datasetParameter>
<dataSourceExpression><![CDATA[$P{XYZ}]]></dataSourceExpression>
</datasetRun>
</dataset>
.....
</categoryDataset>
然后你应该能够得到它:
getParameterValue("SOME_CHART_PARAM")