【问题标题】:java.lang.NoSuchMethodException: Unknown property 'cniEmetteur'java.lang.NoSuchMethodException:未知属性'cniEmetteur'
【发布时间】:2015-12-30 11:11:19
【问题描述】:

我想用 jasper ireport 和 java 生成一个 pdf 报告,但我总是有这个异常:

net.sf.jasperreports.engine.JRException:从 bean 检索字段值时出错:cniEmetteur。 ... ...

原因:java.lang.NoSuchMethodException: Unknown property '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。

【问题讨论】:

    标签: java jasper-reports


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2012-05-05
      • 1970-01-01
      • 2020-06-13
      • 2014-12-16
      • 2023-01-04
      • 1970-01-01
      • 1970-01-01
      • 2015-02-07
      • 2019-03-22
      相关资源
      最近更新 更多