2015-12-30 76 views
0

我想生成碧玉iREPORT分享到人人和Java的PDF报告,但我一直有这样的例外:java.lang.NoSuchMethodException:未知属性“cniEmetteur”

net.sf.jasperreports.engine.JRException:错误检索来自bean的字段值:cniEmetteur。 ... ...

造成的:java.lang.NoSuchMethodException:未知属性 'cniEmetteur'

这里是我的JRXML文件的一部分:

<property name="ireport.zoom" value="1.5"/> 
<property name="ireport.x" value="0"/> 
<property name="ireport.y" value="517"/> 
<parameter name="idTrans" class="java.lang.String"/> 

<queryString language="SQL"> 
    <![CDATA[]]> 
</queryString> 

<field name="idTransaction" class="java.lang.Long"/> 
<field name="code" class="java.lang.String"/> 
<field name="commission" class="java.lang.Double"/> 
<field name="dateTransaction" class="java.sql.Timestamp"/> 
<field name="emetteur" class="sn.groupeidyal.comparateur.persistence.Emetteur"> 

</field> 
<field name="cniEmetteur" class="java.lang.String"/> 
<field name="nomEmetteur" class="java.lang.String"/> 
<field name="numTelEmetteur" class="java.lang.String"/> 
<field name="prenomEmetteur" class="java.lang.String"/> 
<field name="recepteur" class="sn.groupeidyal.comparateur.persistence.Recepteur"> 

</field> 
<field name="cniRecepteur" class="java.lang.String"/> 
<field name="nomDestinataire" class="java.lang.String"/> 
<field name="numTelDestinataire" class="java.lang.String"/> 
<field name="prenomDestinataire" class="java.lang.String"/> 

<field name="montant" class="java.lang.Double"/> 
<field name="idPartenaire" class="java.lang.Long"/> 
<field name="loginAgentEmetteur" class="java.lang.String"/> 

...

这是我的Java代码:

public static void main(String[] args) { 
    JasperPrint jasperPrint = null; 
    ArrayList<Transaction> ts = new ArrayList<Transaction>(); 
    ts.add(new Transaction()); 
    JRBeanCollectionDataSource beanCollectionDataSource = new 
     JRBeanCollectionDataSource(ts); 
    try { 
     JasperCompileManager.compileReportToFile("recu.jrxml"); 
     jasperPrint = JasperFillManager.fillReport("recu.jasper", 
      null, beanCollectionDataSource); 
     JasperViewer jasperViewer = new JasperViewer(jasperPrint); 
     jasperViewer.setVisible(true); 
     JasperExportManager.exportReportToPdfFile(jasperPrint,"C:\\recu.pdf"); 
    } catch (JRException ex) { 
     } 
} 

我的实体交易是在这里:

@Entity 
@Table(name = "transaction") 
public class Transaction implements Serializable { 
@Id 
    @GeneratedValue(strategy = GenerationType.IDENTITY) 
    @Basic(optional = false) 
    @Column(name = "id_transaction") 
    private Long idTransaction; 

    @Column(name = "code") 
    private String code; 

    @Column(name = "date_transaction") 
    @Temporal(TemporalType.DATE) 
    private Date dateTransaction; 

    @Column(name = "login_agent_emetteur") 
    private String loginAgentEmetteur; 

    @Column(name = "montant") 
    private Double montant; 

    @Column(name = "commission") 
    private Double commission; 

    @Embedded 
    private Emetteur emetteur; 
    @Embedded 
    private Recepteur recepteur; 
} 

在我的课堂Emetteur我有场像cniEmetteur,nomEmetteur,prenomEmetteur,numTelEmetteur 和Recepteur类我有nomDestinataire,prenomDestinataire,cniRecepteur和numTelDestinataire。

我认为我的问题是在我的jrxml文件中。如何绑定字段emetteur和cniEmetteur。

回答

0

您可以使用点访问其他字段内的字段。将cniEmetteur更改为emetteur.cniEmetteur等。

+0

谢谢!有用 –