Thursday, 8 August 2013

Unable to retrieve value from a bean while generating reports using jasper

Unable to retrieve value from a bean while generating reports using jasper

I am trying to generate a simple jasper report from a list.
I am keep getting Error retrieving field value from bean : name
This error comes due to wrong getter method-name since jasper uses
reflection to take the fields from a bean. However even after correcting
the getter method-name. I keep getting this exception. Is there any other
problem?
My jrxml file is
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE jasperReport PUBLIC
"//JasperReports//DTD Report Design//EN"
"http://jasperreports.sourceforge.net/dtds/jasperreport.dtd">
<jasperReport name="simpleReport">
<field name="name" class="java.lang.String" />
<field name="count" class="java.lang.String" />
<title>
<band height="50">
<staticText>
<reportElement x="0" y="0" width="180" height="15"/>
<textElement/>
<text><![CDATA[Report]]></text>
</staticText>
</band>
</title>
<pageHeader>
<band/>
</pageHeader>
<columnHeader>
<band height="20">
<staticText>
<reportElement x="180" y="0" width="180" height="20"/>
<textElement>
<font isUnderline="true"/>
</textElement>
<text><![CDATA[Event Name]]></text>
</staticText>
<staticText>
<reportElement x="360" y="0" width="180" height="20"/>
<textElement>
<font isUnderline="true"/>
</textElement>
<text><![CDATA[Count]]></text>
</staticText>
</band>
</columnHeader>
<detail>
<band height="20">
<textField>
<reportElement x="180" y="0" width="180" height="15"/>
<textElement/>
<textFieldExpression><![CDATA[$F{name}]]></textFieldExpression>
</textField>
<textField>
<reportElement x="360" y="0" width="180" height="15"/>
<textElement/>
<textFieldExpression><![CDATA[$F{count}]]></textFieldExpression>
</textField>
</band>
</detail>
<columnFooter>
<band/>
</columnFooter>
<pageFooter>
<band height="15">
<staticText>
<reportElement x="0" y="0" width="40" height="15"/>
<textElement/>
<text><![CDATA[Page:]]></text>
</staticText>
<textField>
<reportElement x="40" y="0" width="100" height="15"/>
<textElement/>
<textFieldExpression
class="java.lang.Integer"><![CDATA[$V{PAGE_NUMBER}]]></textFieldExpression>
</textField>
</band>
</pageFooter>
<summary>
<band/>
</summary>
</jasperReport>
Bean class is
class EventBean {
private String name;
private String count;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getCount() {
return count;
}
public void setCount(String count) {
this.count = count;
}
}
And i am generating reports here
JasperCompileManager.compileReportToFile(inpuutjrxml, outputjasper);
EventNameList list = new EventNameList();
JRBeanCollectionDataSource beanList = new
JRBeanCollectionDataSource(list.getDataBeanList());
JasperPrint jasperPrint = JasperFillManager.fillReport(outputjasper, new
HashMap(), beanList);
JasperExportManager.exportReportToPdfStream(jasperPrint, new
FileOutputStream(pefoutput));
Do we need to make any more modification to bean class?

No comments:

Post a Comment