birt设计X轴时间格式

达到的效果是根据查询参数时间设置x轴时间显示,数据的东西我就不说了,呆会把报表传上来。
新建个折线图,在onrender里写上:

// 我重点讲解一下下面的代码:
importPackage(Packages.org.eclipse.birt.chart.model.data.impl);
importPackage(Packages.java.text);
importPackage(Packages.java.util);
importPackage(Packages.java.lang); //导入一些用到的包

function beforeGeneration( chart, icsc )
{
        stime = icsc.getExternalContext().getScriptable().getParameterValue("stime"); //获取报表参数开始时间
        etime = icsc.getExternalContext().getScriptable().getParameterValue("etime");
       
        format = new SimpleDateFormat("yyyy-MM-dd");  //因为考虑到页面传过来的值为String类型,要转为时间类型
        scal = Calendar.getInstance();   //构建Calendar实例
        ecal = Calendar.getInstance();

        sd = format.parse(stime);           //将字符串转化为时间
        ed = format.parse(etime);
        scal.setTime(sd);              //把时间设置到calendar里。
        ecal.setTime(ed);       
       
        xAxisArray = chart.getBaseAxes();                 //得到x轴对象
        xAxisArray[0].setCategoryAxis(false);  //设置x轴显示为我们设定的时间,如果不设置这项,x轴会默认显示我们读取数据库的时间,有兴趣的可以把他设置为true,对比一下效果就清楚了。

        xAxisArray[0].getScale().setMin(DateTimeDataElementImpl.create(scal.getTimeInMillis()));
//设置时间轴最小值
    xAxisArray[0].getScale().setMax(DateTimeDataElementImpl.create(ecal.getTimeInMillis()));
//设置时间轴最大值
    xAxisArray[0].getScale().setUnit( xAxisArray[0].getScale().getUnit().DAYS_LITERAL);
//设置为日期间隔
    xAxisArray[0].getScale().setStep(5);  //设置日期间隔为5天。

}

注意:
1、如果不想根据参数时间来设置,而是固定的时间,比如一天24小时,那在设计器里图表格式的缩放比例里简单设置就可以了。如果有人不明白,我们再写相应的教程。
2、simpledateformat的parse使用要注意了,经常有人问我一parse就出错,如果不明白的请注意,format的格式要与你的字符串格式一致,format格式不是把字条串格式化成什么格式的时间,这里一定要注意。


大概就这样,下面是我的报表,使用birt默认数据源,直接可以运行。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值