如何用碧玉填表?

时间:2015-04-20 19:30:59

标签: java jasper-reports javabeans

我有一个jasper报告,其中有一个详细的表格,我有一个有2个字段和geters和seters的类。如何用java bean填充表格?

我的代码

public class Table {

    private String gigo;
    private String bibe;

    public Table() {
    }

    public Table(String gigo, String bibe) {
        this.gigo = gigo;
        this.bibe = bibe;
    }

    public String getBibe() {
        return bibe;
    }

    public String getGigo() {
        return gigo;
    }

    public void setBibe(String bibe) {
        this.bibe = bibe;
    }

    public void setGigo(String gigo) {
        this.gigo = gigo;
    }



}

制表师

public class TableMaker {

        public ArrayList<Table> setTableBeanList() {
        ArrayList<Table> dataBeanList = new ArrayList<>();

        dataBeanList.add(produce("test1", "test2"));
                return dataBeanList;
    }

    private Table produce(String name, String occupation) {
        Table TableBean = new Table();

                TableBean.setBibe(name);
                TableBean.setGigo(occupation);

        return TableBean;
    }

}

报告:

InputStream inputStream=Reporter.class.getClassLoader().getResourceAsStream("report2.jasper");    
TableMaker test = new TableMaker();
ArrayList<Table> tablelist = test.setTableBeanList();         
JRBeanCollectionDataSource beanColDataSource = new JRBeanCollectionDataSource(tablelist);
Map parameters = new HashMap();   
JasperReport jasperReport = (JasperReport) JRLoader.loadObject(inputStream);
 JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters,beanColDataSource);
JasperExportManager.exportReportToPdfFile(jasperPrint, "D://timer2.pdf");

在表格中我得到null,为什么?如何正确填写表格?

提前谢谢。

1 个答案:

答案 0 :(得分:-1)

一旦你的Java Bean工作,你需要在Jasper报告中手动添加你的变量。完成后,只需拖动就可以将这些Java Bean getter作为变量与其他数据源变量一起使用他们在OUTLINE WINDOW的报告中。

另外,您还可以使用表向导创建自定义表,并且可以访问所有这些变量。