你好 !
我需要使用 Jasper Reports 创建一个像附件显示的报告。
我用折线图试过了。结果:折线图需要 2 个轴的数字类型字段。
我已经用时间序列试过了。结果:时间序列期望轴有 1 个数字和 1 个日期类型字段。
我必须使用日期,所以我需要一个可以处理日期的图表类型。
有什么建议我该如何解决?我已经尝试了谷歌至少 10 个小时。现在我非常绝望。
谢谢 !
你好 !
我需要使用 Jasper Reports 创建一个像附件显示的报告。
我用折线图试过了。结果:折线图需要 2 个轴的数字类型字段。
我已经用时间序列试过了。结果:时间序列期望轴有 1 个数字和 1 个日期类型字段。
我必须使用日期,所以我需要一个可以处理日期的图表类型。
有什么建议我该如何解决?我已经尝试了谷歌至少 10 个小时。现在我非常绝望。
谢谢 !
我想我已经解决了我的问题。我写了一个定制器类:
package com.test;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import net.sf.jasperreports.engine.JRChart;
import net.sf.jasperreports.engine.JRChartCustomizer;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.DateAxis;
import org.jfree.chart.axis.DateTickUnit;
import org.jfree.chart.plot.XYPlot;
public class TrendCustomizer implements JRChartCustomizer {
public void customize(JFreeChart chart, JRChart jasperChart) {
DateAxis xAxis = new DateAxis();
DateAxis yAxis = new DateAxis();
DateTickUnit unit = null;
unit = new DateTickUnit(DateTickUnit.MONTH, 6);
DateFormat chartFormatter = new SimpleDateFormat("yyyy.MM.dd");
xAxis.setDateFormatOverride(chartFormatter);
xAxis.setTickUnit(unit);
yAxis.setDateFormatOverride(chartFormatter);
yAxis.setTickUnit(unit);
((XYPlot)chart.getPlot()).setDomainAxis(xAxis);
((XYPlot)chart.getPlot()).setRangeAxis(yAxis);
}
}