Jasper 子报表未获取 datasourcebeans 子对象 属性
Jasper subreport not getting datasourcebeans sub object property
我在编译子报表时在 iReport 中遇到错误:
Errors compiling E:\workspace_new\kidslake\src\main\resources\admissionForm_sub_1.jasper!
Compilation exceptions: com.jaspersoft.ireport.designer.compiler.ErrorsCollector@28f84e61
net.sf.jasperreports.engine.JRException: Errors were encountered when compiling report expressions class file:
1. The method getFullName() is undefined for the type Object
value = ((java.lang.Object)field_director.getValue()).getFullName(); //$JR_EXPR_ID=17$
2. The method getFullName() is undefined for the type Object
value = ((java.lang.Object)field_director.getOldValue()).getFullName(); //$JR_EXPR_ID=17$
3. The method getFullName() is undefined for the type Object
value = ((java.lang.Object)field_director.getValue()).getFullName(); //$JR_EXPR_ID=17$
3 errors
at net.sf.jasperreports.engine.design.JRAbstractCompiler.compileReport(JRAbstractCompiler.java:204)
at com.jaspersoft.ireport.designer.compiler.IReportCompiler.run(IReportCompiler.java:512)
at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:572)
我的豆子class就像
class Mainclass{
private List<AdmissionForm> admissionForm;
//getter
//setter
}
class AdmissionForm{
private Director director;
//getter
//setter
}
class Director{
private String fullName;
//getter
//setter
}
我在主报告中将 JRBeanCollectionDataSource
作为 MainClass
的列表传递
我定义了子报表并传递字段
new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{admissionFormList})
我在我的子报告中定义访问主管全名属性
$F{director}.getFullName()
但是当我编译主报表或子报表时出现上述错误。
帮我解决问题
您可以执行以下操作之一:
- 将
director
报告字段的类型设置为 Director
(full/qualified class 名称)。显然当前字段类型是 java.lang.Object
- 将报告语言更改为 Groovy。
- 声明一个名为
director.fullName
的报告字段并直接使用该字段而不是 $F{director}.getFullName()
我在编译子报表时在 iReport 中遇到错误:
Errors compiling E:\workspace_new\kidslake\src\main\resources\admissionForm_sub_1.jasper!
Compilation exceptions: com.jaspersoft.ireport.designer.compiler.ErrorsCollector@28f84e61
net.sf.jasperreports.engine.JRException: Errors were encountered when compiling report expressions class file:
1. The method getFullName() is undefined for the type Object
value = ((java.lang.Object)field_director.getValue()).getFullName(); //$JR_EXPR_ID=17$
2. The method getFullName() is undefined for the type Object
value = ((java.lang.Object)field_director.getOldValue()).getFullName(); //$JR_EXPR_ID=17$
3. The method getFullName() is undefined for the type Object
value = ((java.lang.Object)field_director.getValue()).getFullName(); //$JR_EXPR_ID=17$
3 errors
at net.sf.jasperreports.engine.design.JRAbstractCompiler.compileReport(JRAbstractCompiler.java:204)
at com.jaspersoft.ireport.designer.compiler.IReportCompiler.run(IReportCompiler.java:512)
at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:572)
我的豆子class就像
class Mainclass{
private List<AdmissionForm> admissionForm;
//getter
//setter
}
class AdmissionForm{
private Director director;
//getter
//setter
}
class Director{
private String fullName;
//getter
//setter
}
我在主报告中将 JRBeanCollectionDataSource
作为 MainClass
的列表传递
我定义了子报表并传递字段
new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{admissionFormList})
我在我的子报告中定义访问主管全名属性
$F{director}.getFullName()
但是当我编译主报表或子报表时出现上述错误。
帮我解决问题
您可以执行以下操作之一:
- 将
director
报告字段的类型设置为Director
(full/qualified class 名称)。显然当前字段类型是java.lang.Object
- 将报告语言更改为 Groovy。
- 声明一个名为
director.fullName
的报告字段并直接使用该字段而不是$F{director}.getFullName()