【问题标题】:Jasper report line chart with two date type axis具有两个日期类型轴的 Jasper 报表折线图
【发布时间】:2015-02-27 19:47:31
【问题描述】:

你好!

我需要使用 Jasper Reports 创建一个如附件所示的报告。

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

我已经尝试过使用时间序列。结果:时间序列期望轴有 1 个数字和 1 个日期类型字段。

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

有什么建议可以解决这个问题吗?我已经尝试了谷歌至少 10 个小时。现在我很绝望。

谢谢!

【问题讨论】:

    标签: date jasper-reports report


    【解决方案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);
    }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-30
      • 1970-01-01
      相关资源
      最近更新 更多