Jasper报告折线图,带有两个日期类型轴

时间:2012-06-27 12:27:40

标签: date jasper-reports report

Required report

你好!

我需要创建一个报告,例如与Jasper Reports的附件显示。

我用折线图试过了。结果:折线图需要轴的2个数字类型字段。

我用时间序列试过了。结果:时间序列期望轴的1个数字和1个日期类型字段。

我必须使用日期,所以我需要一个可以处理日期的图表类型。

任何建议如何解决这个问题?我已经尝试了谷歌至少10个小时。现在我非常绝望。

谢谢!

1 个答案:

答案 0 :(得分:1)

我想我已经解决了我的问题。我写了一个定制器类:

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);
}
}