jasperReport+ireport制作pdf报表教程
一.简介:
JasperReport是一个开源的java报表制作引擎,ireport是jasperReport的一个GUI工具。我们先使用ireport制作报表的样式,ireport会给我们产生个后缀名为jrxml的文件,然后我们通过java代码向这个模版填充数据,再然后显示出来,它支持输出的文件格式包括PDF,HTML,XHTML,EXCEL等等…一个典型的jrxml文件会包含以下元素:
<Title>: 每个报表一般会有一个名字.
<pageHeader>: 报表的公共要素, 比如页码,创建时间,创建人等信息一般放置在这里.
<columnHeader>: 放列的名称.
<detail>: 放置需要循环输出的数据.
<columnFooter>: 列级别的统计计算值或是列的说明.
<pageFooter>: 放置页级别的统计值或是页的说明.
<lastPageFooter>: 最后一页特殊的格式, 可以放置总结.
<summary>: 只在最后一页才出现.
二.案例:
jasperReport支持多种数据源,下面使用javaBean作为数据源讲解一个简单的例子。
1.java代码
/** * 部门实体 * @author Hewei * */public class Department {private String name; //部门名称private List<Staff> staffs; //员工集合public Department(){}public String getName() {return name;}public void setName(String name) {this.name = name;}public List<Staff> getStaffs() {return staffs;}public void setStaffs(List<Staff> staffs) {this.staffs = staffs;}}/** * 员工实体 * @author Hewei * */public class Staff {private String name; //姓名private String sex;//性别public Staff(){}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}}
/** * 数据工厂 * @author HEWEI * */public class Factory {/** * * @return */public static List<Department> returnData(){Staff staff1 = new Staff();staff1.setName("关羽");staff1.setSex("男");Staff staff2 = new Staff();staff2.setName("张飞");staff2.setSex("shit");Staff staff3 = new Staff();staff3.setName("刘备");staff3.setSex("男");List<Department> departments = new ArrayList<Department>();Department department = new Department();department.setName("研发部");List<Staff> staffs = new ArrayList<Staff>();staffs.add(staff1);staffs.add(staff2);staffs.add(staff3);departments.add(department);return departments;}}