我有这个对象结构,可以像 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;
}
所有班级都有相应的setters
and getters
当我在 jasper 报告中创建列表时,我定义了“工作清单” JRDataSource expression
这边走:
new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{jobs})
现在我想创建另一个列表,《责任清单》 on the “工作清单”, 问题是:
如何定义数据源以获取相应的作业传递到JRDataSource Expression
?
我想象这样的事情:
new JRBeanCollectionDataSource(${jobs}.get($index).getResponsabilities())
但我无法让它发挥作用
我找到了执行此操作的解决方案:
在列表中,我创建了一个名为的变量工作实例
<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 https://community.jaspersoft.com/questions/508346/getting-current-object
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)