0
我已經定義了下面的模板:問題與參數傳遞到Jasper報表
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE jasperReport
PUBLIC "-//JasperReports//DTD Report Design//EN"
"http://jasperreports.sourceforge.net/dtds/jasperreport.dtd">
<jasperReport name="HelloJasper_report">
<parameter name="customer" class="com.eternity.model.Customer"/>
<detail>
<band height="20">
<staticText>
<reportElement x="220" y="0" width="200" height="20"/>
<text><![CDATA[$P{customer.firstName}]]></text>
</staticText>
</band>
</detail>
</jasperReport>
我crateing具有以下報告:
try{
Map<String, Object> parameters = new HashMap<String, Object>();
parameters.put("customer", new Customer("Example name"));
System.out.println("Generating PDF...");
JasperReport jasperReport =
JasperCompileManager.compileReport("hellojasper.jrxml");
JasperPrint jasperPrint =
JasperFillManager.fillReport(jasperReport, parameters, new JREmptyDataSource());
JasperExportManager.exportReportToPdfFile(
jasperPrint, "HelloJasper.pdf");
System.out.println("HelloJasper.pdf has been generated!");
}
catch (JRException e){
e.printStackTrace();
}
如果客戶是
public class Customer{
private String firstName;
public Customer(String firstName){
this.firstName = firstName;
}
}
但是,生成的PDF只是打印:
$P{customer.firstName}
我錯過了什麼?
我已更正我在此主題中提出的客戶和人員錯誤 - 但是,它們在代碼中是正確的。我試過了你的textFieldExpression,但是,我得到了以下錯誤: 1.未找到參數:customer.firstName – uksz
@uksz編輯了我的答案,錯誤地在報告中使用大括號。另外請看我的答案中的第三點:您是否添加了公共getter方法? –
是的!它現在的作品!非常感謝!現在我需要生成表:)你可以建議我閱讀任何文件嗎? – uksz