JasperReport 结合iReport报表开发
一、准备
下载iReport3.7.1、JasperReport3.7.1、Struts2.1.8及其他需要的包,需导入包如下图:

如需生成Excel的话,还需导入poi-3.5.jar包。二、整合Struts2+JasperReport3
1. 新建以下三个pojo类:package com.xy.report.pojo;public class Address {private String city;private String zipcode;public String getCity() {return city;}public void setCity(String city) {this .city = city;}public String getZipcode() {return zipcode;}public void setZipcode(String zipcode) {this .zipcode = zipcode;}} package com.xy.report.pojo;import java.util.HashSet;import java.util.Set;public class Company implements Comparable < Company > {private String name;private Address address;private Set < Staff > staffs = new HashSet < Staff > ();@Overridepublic int compareTo(Company o) {return o.getName().compareTo( this .getName());}public String getName() {return name;}public void setName(String name) {this .name = name;}public Address getAddress() {return address;}public void setAddress(Address address) {this .address = address;}public Set < Staff > getStaffs() {return staffs;}public void setStaffs(Set < Staff > staffs) {this .staffs = staffs;}} Company中compareTo方法用于在报表中排序。
package com.xy.report.pojo;public class Staff {private String name;private Company company;public String getName() {return name;}public void setName(String name) {this .name = name;}public Company getCompany() {return company;}public void setCompany(Company company) {this .company = company;}} 以上Address是Company的组件,Company与Staff是一对多关系。2. 新建Actionpackage com.xy.report.action;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import com.opensymphony.xwork2.ActionSupport;import com.xy.report.pojo.Address;import com.xy.report.pojo.Company;import com.xy.report.pojo.Staff;public class DemoAction extends ActionSupport{private static final long serialVersionUID = - 5460323122712890562L ;private List < Staff > list;private Map < String,Object > map;@Overridepublic String execute(){list = getData();map = getParameter();return SUCCESS;}private List < Staff > getData(){Address address = new Address();address.setCity( " 上海 " );address.setZipcode( " 201400 " );Company company1 = new Company();company1.setName( " 飞利浦 " );company1.setAddress(address);Company company2 = new Company();company2.setName( " 谷歌 " );company2.setAddress(address);Staff staff1 = new Staff();staff1.setName( " 张三 " );staff1.setCompany(company1);Staff staff2 = new Staff();staff2.setName( " 李四 " );staff2.setCompany(company2);Staff staff3 = new Staff();staff3.setName( " 王五 " );staff3.setCompany(company1);List < Staff > list = new ArrayList < Staff > ();list.add(staff1);list.add(staff2);list.add(staff3);return list;}private Map < String,Object > getParameter(){Map < String,Object > map = new HashMap < String,Object > ();map.put( " date " , " 2010-03-12 " );return map;}// getter, setterpublic List < Staff > getList() {return list;}public void setList(List < Staff > list) {this .list = list;}public Map < String, Object > getMap() {return map;}public void setMap(Map < String, Object > map) {this .map = map;}} 以上list为提供给报表的数据源,map为提供给报表的参数,如日期范围等。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-33892-1.html
还有不要说密封没空气
期待演员杨洋给我们展现他的潜力和作品
但发展方向是对的