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