在iReport中设置javabean数据源时,在bean中调用bean

时间:2015-02-05 15:45:15

标签: jasper-reports ireport

我有一个ReportObject类,它本身就有一个University类。然后我有一个MainClass有一个函数,它返回这些ReportObjects的arrayList。整个设置在iReport中设置为java bean数据源,我能够正确读取所有字段。

enter image description here

但是当我尝试使用大学课程中的字段(地址和universityName)时,我收到以下错误:

从豆

错误填充打印...错误检索字段值:地址 net.sf.jasperreports.engine.JRException:从net.sf.jasperreports.engine.data的net.sf.jasperreports.engine.data.JRAbstractBeanDataSource.getBeanProperty(JRAbstractBeanDataSource.java:123)中的bean:address中检索字段值时出错。来自net.sf.jasperreports.engine.fill.JRFillDataset.setOldValues(JRFillDataset.java)的net.sf.jasperreports.engine.data.JRBeanCollectionDataSource.getFieldValue(JRBeanCollectionDataSource.java:109)中的JRAbstractBeanDataSource.getFieldValue(JRAbstractBeanDataSource.java:96) 1358)net.sf.jasperreports.engine.fill.JRFillDataset.next(JRFillDataset.java:1259)at net.sf.jasperreports.engine.fill.JRFillDataset.next(JRFillDataset.java:1235)<

在我的报告中,我导入了字段地址,universityName,studentName和gpa,我在报告的详细信息部分使用它们为$ F {universityName},$ F {address}。

注意:我尝试只导入大学对象,然后使用点符号来获取地址和universityName,但这也不起作用。 当我使用studentName和gpa执行报告时,它工作得非常好,所以问题在于访问与另一个bean处于“has-a”关系的bean的bean属性。

1 个答案:

答案 0 :(得分:1)

看起来我已经找到了解决方案: 我应该使用这样的表达式:((tutorial.ireport.University)$ F {university})。getAddress()使事情有效。