I am new to jasper report,i have two beans,one is main and another is sub bean,i am passing sub bean list to main bean and fetching the values from main bean which contains list of sub bean and two attributes college and address fields,in that i am getting college and address correctly from main bean but occurring error fetching values from sub-bean list.
Error:
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)
My Code:
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));
My First Bean:
public class FirstDTO {
private String College= "";
private String address= "";
private List<StudentTransactionDTO> studentTransactionDTOList =
new ArrayList<StudentTransactionDTO>();
getter and setters....
Second Bean(Inner Bean):
public class studentTransactionDTO {
private String age= "";
private String Name = "";
private String marks = "";
getter and setters....
Please give me some suggestion,how to retrieve values from second bean and set to jasper report.
Regards.