使用的是jasperreports-5.6.0版本的包。
需求: 报表由一个基本Basic对象和一个集合类CustomList对象组成
问题:jasperreports没有提供类似可用的datasource类
解决方法:自定义一个DataSource实现JRDataSource接口即可
仿照JRBeanCollectionDataSource写了一个ReportDataSource,同样使其继承JRAbstractBeanDataSource,代码如下:
public class ReportDataSource extends JRAbstractBeanDataSource {
/**
*
*/
private Collection<?> data;
private Iterator<?> iterator;
private Object currentBean;
private Object basicData;//基本数据
/**
*
*/
public ReportDataSource(Object basicData,Collection<?> beanCollection)
{
this(basicData,beanCollection, true);
}
/**
*
*/
public ReportDataSource(Object basicData,Collection<?> beanCollection, boolean isUseFieldDescription)
{
super(isUseFieldDescription);
this.basicData = basicData;