【发布时间】:2014-02-21 18:32:57
【问题描述】:
我是 jasper 报告的新手,我有两个 bean,一个是主 bean,另一个是子 bean,我正在将子 bean 列表传递给主 bean,并从包含子 bean 列表和两个属性学院的主 bean 中获取值和地址字段,因为我正在从主 bean 正确获取大学和地址,但是从子 bean 列表中获取值时发生错误。
错误:
net.sf.jasperreports.engine.JRException: Error retrieving field value from bean : age
at net.sf.jasperreports.engine.data.JRAbstractBeanDataSource.getBeanProperty(JRAbstractBeanDataSource.java:123)
at net.sf.jasperreports.engine.data.JRAbstractBeanDataSource.getFieldValue(JRAbstractBeanDataSource.java:96)
at net.sf.jasperreports.engine.data.JRBeanCollectionDataSource.getFieldValue(JRBeanCollectionDataSource.java:100)
at net.sf.jasperreports.engine.fill.JRFillDataset.setOldValues(JRFillDataset.java:1356)
at net.sf.jasperreports.engine.fill.JRFillDataset.next(JRFillDataset.java:1257)
at net.sf.jasperreports.engine.fill.JRFillDataset.next(JRFillDataset.java:1233)
at net.sf.jasperreports.engine.fill.JRBaseFiller.next(JRBaseFiller.java:1577)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:149)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:932)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:864)
at net.sf.jasperreports.engine.fill.JRFiller.fill(JRFiller.java:114)
at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:653)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:969)
我的代码:
List<StudentTransactionDTO> studentTransactionDTOList = firstDTO.getStudentTransactionDTOList();
firstDTO.setStudentTransactionDTOList(studentTransactionDTOList);
reports.add((Object) firstDTO);
//when i print this on console it prints
jasperDesign = JRXmlLoader.load(getReportFile());
jasperReport = JasperCompileManager.compileReport(jasperDesign);
//It load and compile report successfully.
//It gives error while filling data.
jasperPrint = JasperFillManager.fillReport(jasperReport, parameter,
new JRBeanCollectionDataSource(reports,false));
我的第一个豆子:
public class FirstDTO {
private String College= "";
private String address= "";
private List<StudentTransactionDTO> studentTransactionDTOList =
new ArrayList<StudentTransactionDTO>();
getter and setters....
第二个豆(内豆):
public class studentTransactionDTO {
private String age= "";
private String Name = "";
private String marks = "";
getter and setters....
请给我一些建议,如何从第二个 bean 中检索值并设置为 jasper 报告。
问候。
【问题讨论】:
-
@Alex K 你提出的问题,不满足我,这就是我提出这个问题的原因,在这个问题中,我将我的 bean 类公开。
-
你在完整的堆栈跟踪中有
Caused by: java.lang.NoSuchMethodException吗? -
@AlexK 不,不是因为'java.lang.NoSuchMethodException',它无法获取内部bean(studentTransactionDTOList)的值,如果您有任何建议,请告诉我。跨度>
标签: java jasper-reports javabeans