将集合的数据打印到报表

Ireport制定模板:

先要告诉Ireport报表中间包含的数据及其类型

 

package com.yohn.other;

import java.util.ArrayList;

import java.util.Date;

import java.util.List;

import net.sf.jasperreports.engine.JRDataSource;

import net.sf.jasperreports.engine.JRException;

import net.sf.jasperreports.engine.JasperReport;

import net.sf.jasperreports.engine.data.JRAbstractBeanDataSourceProvider;

import net.sf.jasperreports.engine.data.JRBeanArrayDataSource;

import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;

import com.accp.pojos.Dep;

import com.accp.pojos.Users;

// 模拟数据源,告诉ireport报表获取集合中间的数据的名称和格式
public class MyDataSourcePrivoder extends  JRAbstractBeanDataSourceProvider {
 //写一个无参的构造函数
  public MyDataSourcePrivoder() {

         super(Users.class);//将你集合中间对象的类型传入

    }   

    //产生一些模拟数据出来

    public JRDataSource create(JasperReport jr) 

        throws JRException {

        List<Users> ls=new ArrayList();

        for(int i=0;i<5;i++){

            Users us=new Users();

            us.setBirthday(new Date());

            us.setDep(new Dep());

            us.setId(i);

            us.setPwd("abcd");

            us.setSex(1);

            us.setUsername("accp"+i);

            ls.add(us);

        }

        return new JRBeanCollectionDataSource(ls);

    }

    public void dispose(JRDataSource arg0) throws JRException {

    }

}

 

 

将类编译,然后将MyDataSourcePrivoder 类和相关类(UsersDep)配置到ireport中间

你可能感兴趣的:(.net)