Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 动态报告:从bean检索字段值时出错_Java_Collections_Datasource_Dynamic Reports - Fatal编程技术网

Java 动态报告:从bean检索字段值时出错

Java 动态报告:从bean检索字段值时出错,java,collections,datasource,dynamic-reports,Java,Collections,Datasource,Dynamic Reports,我正在使用动态jasper库为我的报告创建动态列。 这是我的代码: FastReportBuilder drb = new FastReportBuilder(); DynamicReport dr = drb.addColumn("State", "state", String.class.getName(),30) .addColumn("Branch", "branch", String.class.getName(),30) //

我正在使用动态jasper库为我的报告创建动态列。
这是我的代码:

FastReportBuilder drb = new FastReportBuilder();
          DynamicReport dr = drb.addColumn("State", "state", String.class.getName(),30)
                  .addColumn("Branch", "branch", String.class.getName(),30) // title, property to show, class of the property, width
                  .addColumn("Product Line", "productLine", String.class.getName(),50)
                  .addColumn("Item", "item", String.class.getName(),50)
                  .addColumn("Item Code", "id", Long.class.getName(),20)
                  .addColumn("Quantity", "quantity", Long.class.getName(),30)
                  .addColumn("Amount", "amount", Float.class.getName(),30)
                  .addGroups(2)   // Group by the first two columns
                  .setTitle("November 2006 sales report")
                  .setSubtitle("This report was generateed at" + new Date())
                  .setUseFullPageWidth(true) //make colums to fill the page width
                  .build();      

          JRDataSource ds = new JRBeanCollectionDataSource(TestRepositoryProducts.getDummyCollection());  
          JasperPrint jp = DynamicJasperHelper.generateJasperPrint(dr, new ClassicLayoutManager(), ds);
          JasperViewer.viewReport(jp);
这是我的类
TestRepositoryProducts

import java.util.ArrayList;
import java.util.Collection;
import java.util.Vector;

public class TestRepositoryProducts {

    public static Collection<Object> getDummyCollection() {
        Collection<Object> v = new ArrayList<Object>();
        v.add("qsdqsd");
        v.add("qsdqdqs");
        v.add("qsdqdqs");
        v.add("qsdqdqs");
        v.add(32165);
        v.add(65456);
        v.add(1.5);
        return v;
    }

}
import java.util.ArrayList;
导入java.util.Collection;
导入java.util.Vector;
公共类TestRepositoryProducts{
公共静态集合getDummyCollection(){
集合v=新的ArrayList();
v、 添加(“qsdqsd”);
v、 添加(“qsdqdqs”);
v、 添加(“qsdqdqs”);
v、 添加(“qsdqdqs”);
v、 增加(32165);
v、 增加(65456);
v、 增加(1.5);
返回v;
}
}
这就是错误:

JRBeanCollectionDataSource
需要一个bean集合,每个bean代表一行,而不是一个对象集合,每个对象代表一列(如您所想)

Bean类需要为您定义的每个属性使用getter/setter,比如
getState()
getBranch()
等等

例如:

public class MyBean {
    private String state;
    // other properties

    public MyBean() {}

    public String getState() { 
        return state;
    }

    public void setState(String s) {
        state = s;
    }

    // other getters and setters
}
您的测试类将创建这些MyBean类的集合:

public class TestRepositoryProducts {
    public static Collection<MyBean> getDummyCollection() {
        Collection<MyBean> v = new ArrayList<MyBean>();
        MyBean b1 = new MyBean();
        b1.setState("s1");
        b1.setBranch("b1");
        // set other properties of b1
        v.add(b1);

        // more beans created and added to v
        return v;
    }
公共类TestRepositoryProducts{
公共静态集合getDummyCollection(){
集合v=新的ArrayList();
MyBean b1=新的MyBean();
b1.设定状态(“s1”);
b1.立博兰(“b1”);
//设置b1的其他属性
v、 添加(b1);
//创建更多bean并添加到v
返回v;
}