
这里只有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的准备就完成了。