【问题标题】:JasperReport: JRException: Error retrieving field value from bean(Nested Bean Issue)JasperReport:JRException:从 bean 检索字段值时出错(嵌套 Bean 问题)
【发布时间】: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


【解决方案1】:

为此,我使用了 subreport 并在 subreport 中使用了第二个 bean,对于这个答案,我求助于:Click Here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多