列入其他列表jasper报告

时间:2018-02-07 00:55:56

标签: java jasper-reports javabeans

我有这个对象结构,在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;
}

包含相应settersgetters

的所有课程

当我在jasper报告中创建列表时,我以这种方式定义“作业列表” JRDataSource expression

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

现在我想在“职位列表”上创建另一个列表“职责列表”,问题是:

如何定义数据源以将相应的作业传递到JRDataSource Expression

我想象这样的事情:

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

但我无法让它发挥作用

1 个答案:

答案 0 :(得分:0)

我找到了解决方案:

在列表中,我创建了一个名为 jobInstance

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

然后,当我为职责设置数据源时,列表执行了以下操作:

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

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