将java bean的JRXML设计为包含嵌套java bean的数据源

将java bean的JRXML设计为包含嵌套java bean的数据源,java,jasper-reports,javabeans,Java,Jasper Reports,Javabeans,我目前正在从事一个项目,我需要使用Jasper Reports。我想使用JavaBeans作为JRXML或更准确地说是Jasper文件的数据源来生成Jasper报告。因此,Jasper文件的输入将是bean的列表/集合。我的Java Bean如下所示: myBean1 { field1; field2; ... //Constructors and getter-setters as per normal bean convention. } myBean

我目前正在从事一个项目,我需要使用Jasper Reports。我想使用JavaBeans作为JRXML或更准确地说是Jasper文件的数据源来生成Jasper报告。因此,Jasper文件的输入将是bean的列表/集合。我的Java Bean如下所示:

myBean1 {
    field1;
    field2;
    ...

    //Constructors and getter-setters as per normal bean convention.
}  
myBean1 {
    field1;
    field2;
    List<myBean2> list;

    ...

    //Constructors and getter-setters as per normal bean convention.
}  
我面临的问题是,在这些字段中,其中一个字段是另一个bean的列表,比如myBean2。myBean2有两个字段和各自的getter和setter方法

因此,myBean1的结构如下:

myBean1 {
    field1;
    field2;
    ...

    //Constructors and getter-setters as per normal bean convention.
}  
myBean1 {
    field1;
    field2;
    List<myBean2> list;

    ...

    //Constructors and getter-setters as per normal bean convention.
}  
由于myBean1中的myBean2列表,我在设计JRXML时面临困难。
请为我提供一些实现JRXML的提示。

为了解决这个问题,我使用了子报告。这个想法非常简单,添加普通字段,就像它们在设计文件中一样,并为list元素创建另一个jrxml设计文件,其中包含bean的元素,bean将作为list传递。将另一个jrxml文件作为子报告添加到原始文件中,并将数据源设置为该子报告作为列表,并将bean列表作为数据源传递。它会解决你的问题。如果有任何疑问,请发表评论。