ireport子报表《javabean数据源,springmvc实现》

来源:互联网 发布:java的spring框架 编辑:程序博客网 时间:2024/05/21 06:28

1.父报表和子报表的制作

效果图:
这里写图片描述
1.新建文件
这里写图片描述
2.删除其它ban,只留下detail1。
原因:把数据放在其它ban,显示时,只有一条数据。
这里写图片描述
3.添加javabean
(1)修改calsspath
工具–》选项–》classpath–》addFolder
这里写图片描述
(2)添加javabean
点击这里写图片描述
然后
这里写图片描述
Calss name的路径是class文件相对classpath路径的地址。然后选择要显示的内容(这里是name和list类employee)
4.添加显示内容
(1)把左边files下的name拖到detail1和右边组件面板的subReport拖到detail1(拖subreport的时候创建子报表,过程和组报表一样,数据源选择空)
子报表效果图:
这里写图片描述
主报表效果图:
这里写图片描述
5.主报表和子报表添加关联(主报表向子报表传递数据)
在主报表中点击子报表,在属性栏中修改connection type为use a datasource expession;修改data source Expression 为new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{employee})
这里写图片描述
6.编译生成jasper文件(开发时主需要用到主报表Jasper文件)
这里写图片描述

2.代码

1.两个实体类

public class Employee {    private int number;    private String empName;    //get和set省略    //构造函数,用来添加数据    public Employee(int number, String empName) {        super();        this.number = number;        this.empName = empName;    }
public class Company {    private String name;    private List<Employee> employee;    //get、set    //构造函数,用来添加数据    public Company(String name, List<Employee> employee) {        super();        this.name = name;        this.employee = employee;    }    public Company() {        // TODO Auto-generated constructor stub    }    //数据源    public static List getData(){        List<Company> listCompany1=new ArrayList<>();        Employee employee1=new Employee(1,"xie");        Employee employee2=new Employee(2,"wu");        Employee employee3=new Employee(3,"cheng");        Employee employee4=new Employee(4,"good");        List<Employee> listEmployee1=new ArrayList<>();        List<Employee> listEmployee2=new ArrayList<>();        listEmployee1.add(employee1);        listEmployee1.add(employee2);        listEmployee2.add(employee3);        listEmployee2.add(employee4);        Company company1=new Company("company1",listEmployee1);        Company company2=new Company("company2",listEmployee2);        listCompany1.add(company1);        listCompany1.add(company2);        return listCompany1;    }

2.springmvc代码

    @RequestMapping(value = "/report", method = RequestMethod.GET)    public String report(Model model) {        // 报表数据源        //JRDataSource jrDataSource = new JRBeanCollectionDataSource(JavaBeanPerson.getList());        JRDataSource jrDataSource = new JRBeanCollectionDataSource(Company.getData());        // 动态指定报表模板url        //model.addAttribute("url", "/WEB-INF/jasper/spring_report.jasper");        model.addAttribute("url", "/WEB-INF/jasper/reportSub0711.jasper");        model.addAttribute("format", "pdf"); // 报表格式        model.addAttribute("jrMainDataSource", jrDataSource);        return "reportView"; // 对应jasper-views.xml中的bean id    }

3.JasperReport+springmvc整合开发详情请看http://blog.csdn.net/xht555/article/details/43409637
4.本项目代码:

原创粉丝点击