ireport5.6+jasperreport6.3开发(三)--以javabean为基准的报表开发(javabean)

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

原文地址:https://www.cnblogs.com/spchenjie/p/5806611.html