List 到其他 List jasper 报告

List into other List jasper report

我有这个对象结构,在 mi jasper 报告中使用 Java Bean,

public class Person{
   private String name;
   private String lastname;
   private List<Job> jobs;
}

public class Job{
   private String jobName;
   private String companyName;
   private List<Reponsability> responsabilities;
}

所有 class 对应 settersgetters

当我在 jasper 报告中创建列表时,我这样定义 "job list" JRDataSource expression

new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{jobs})

现在我想在 "job list" 上创建另一个列表 "responsibilities list",问题是:

如何定义数据源以获取相应的作业传递给JRDataSource Expression

我想象的是这样的:

new JRBeanCollectionDataSource(${jobs}.get($index).getResponsabilities())

但我无法让它工作

我找到了解决方法:

进入列表,我创建了一个名为jobInstance

的变量
    <field name="jobInstance" class="com.mypackage.example.Job">
        <fieldDescription><![CDATA[_THIS]]></fieldDescription>
    </field>

然后当我为 responsibilities 列表设置数据源时:

new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{jobInstance}.getResponsabilities())

参考文献:https://community.jaspersoft.com/questions/508346/getting-current-object