这里只有ireport的开发没有web侧的程序。
ireport的数据源可以说是多种多样,大致可以通过文件 数据库 bean类这三种方式,这里只介绍bean类
(数据库比较简单可参考其他的网站,文件没用过不评论(其实是不会))
首先需要建立bean类 下面是一个父bean有4个属性,child是子列表 顺带一提这里使用list 或者使用 ReportChild[]数组对报表开发时的选择有一定影响
public class ReportData implements Serializable{ private String id; private String name; private String className; private List<ReportChild> child; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getClassName() { return className; } public void setClassName(String className) { this.className = className; } public List<ReportChild> getChild() { return child; } public void setChild(List<ReportChild> child) { this.child = child; } }
子节点元素(不要在意属性英文的含义 很烂)
public class ReportChild implements Serializable{ public String courseName; public int degree; public String getCourseName() { return courseName; } public void setCourseName(String courseName) { this.courseName = courseName; } public int getDegree() { return degree; } public void setDegree(int degree) { this.degree = degree; } }
最后建立数据工厂
public class ReportDataSourceFactory { private static ReportData[] data= null; public static ReportData[] getBeanArray() { data = new ReportData[2]; data[0] = new ReportData(); data[0].setId("001"); data[0].setName("陈"); data[0].setClassName("一班"); data[0].setChild(Arrays.asList(ReportChildSourceFactory.getBeanArray())); data[1] = new ReportData(); data[1].setId("002"); data[1].setName("拉拉"); data[1].setClassName("二班"); data[1].setChild(Arrays.asList(ReportChildSourceFactory.getBeanArray())); return data; } } public class ReportChildSourceFactory { private static ReportChild[] data= null; public static ReportChild[] getBeanArray() { data = new ReportChild[2]; data[0] = new ReportChild(); data[0].degree = 30; data[0].courseName = "合格"; data[1] = new ReportChild(); data[1].degree = 70; data[1].courseName = "不合格"; return data; } }
然后请编译。这样javabean的准备就完成了。