是在java Swing中的应用,采用javabean的数据源
代码大概如下
List<StatItem> dataList = buffer.getAllItem();
JRDataSource dataSource = new JRBeanCollectionDataSource(dataList);
InPutStream = inReport = ClassName.class.getResourceAsStream("polllog.jasper");
JasperReport jasperReport =(JasperReport)JRLoader.loadObject(inReport);
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport ,new HashMap(),dataSource );
最后采用JasperViewer的方式生成预览报表的窗口
JasperViewer.viewReport(jasperPrint,false);[polllog.jasper 是以编译好的jrxml报表文件,此文件中只有个 timeSeries类型的chart,已经在报表设计工具如ireport的netbeans插件中设置好了一个timeSeries]
如图问题一:
采用此种方式,能够使用JasperViewer的方式在swing中出预览框,但是问题是X轴也就是时间轴的格式总是
|
|
|
|_____________________________
“27-六月  28-六月 1-七月” 这样的格式,这样与我的要求不符合
我传进去的数据源的时间格式是“2008-05-27”这样类型,
怎么样才能使时间轴显示的时间格式为2008-05-27或者其他有年份显示的时间格式,或者在代码中怎么才能象jfreechart 那样使用jfreechart.getXYPlot()方法获得横坐标,从而对其进行格式化.问题二:
采用这样的方式 我每次传入的dataSource只能包含一条曲线的数据.
如何能象jfreechart那样使用下面的方式在代码中多添加几条曲线
//访问量统计时间线
TimeSeries timeSeries2006 = new TimeSeries("2006年度", Month.class);
TimeSeries timeSeries2007 = new TimeSeries("2007年度", Month.class);
//时间曲线数据集合
TimeSeriesCollection lineDataset = new TimeSeriesCollection();
lineDataset.addSeries(timeSeries2006);
lineDataset.addSeries(timeSeries2007);
JFreeChart chart = ChartFactory.createTimeSeriesChart("访问量统计时间线", "月份", "访问量", lineDataset, true, true, true);问题三
如果产用纯jfreeChart生成timeSeriesChart以后,生成的chart对象,怎么能使用jasperReport的方式预览。
只查到jasperReport有个JRFillChart的类 是用来调用jfreeChart对象的,求教具体怎么使用。
以上问题均发生在java Swing的应用中。