我一直在使用JasperReports生成PDF报告,但是有一个功能我不能使用。我正在尝试生成一个包含每月数据但只显示年份标签的TimeSeriesCharts。不幸的是,这就是最终结果:

我希望每年只出现一次。我该怎么做呢?
jrxml代码如下:
<timeSeriesChart>
<chart evaluationTime="Report" isShowLegend="false">
<reportElement x="0" y="32" width="462" height="180" />
<chartTitle/>
<chartSubtitle/>
<chartLegend/>
</chart>
<timeSeriesDataset timePeriod="Month">
<dataset>
<datasetRun subDataset="chartDataSet" uuid="abec2dce-b670-4e84-b71f-469d954dbcb5">
<dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{data})]]></dataSourceExpression>
</datasetRun>
</dataset>
<timeSeries>
<seriesExpression><![CDATA[$F{serie}]]></seriesExpression>
<timePeriodExpression><![CDATA[$F{category}]]></timePeriodExpression>
<valueExpression><![CDATA[$F{value}]]></valueExpression>
</timeSeries>
</timeSeriesDataset>
<timeSeriesPlot isShowShapes="false">
<plot>
<seriesColor seriesOrder="1" color="#0000FF" />
</plot>
<timeAxisFormat>
<axisFormat labelColor="#000000" tickLabelColor="#000000" axisLineColor="#000000" verticalTickLabels="true" tickLabelMask="yyyy" />
</timeAxisFormat>
<valueAxisFormat>
<axisFormat labelColor="#000000" tickLabelColor="#000000" axisLineColor="#000000"/>
</valueAxisFormat>
</timeSeriesPlot>
</timeSeriesChart>提前感谢
发布于 2017-02-02 20:44:12
事实证明,这很容易。我必须创建一个Java类来定制图表:
public class MyChartCustomizer implements JRChartCustomizer {
@Override
public void customize(JFreeChart chart, JRChart jasperChart){
DateAxis axis = (DateAxis) chart.getXYPlot().getDomainAxis();
axis.setTickUnit(new DateTickUnit(DateTickUnitType.YEAR, 1));
}
}然后在jrxml中引用它:
<timeSeriesChart>
<chart evaluationTime="Report" isShowLegend="false" customizerClass="my.org.MyChartCustomizer">
....希望这对某些人有帮助。
https://stackoverflow.com/questions/41987011
复制相似问题