1

我需要设计一个报告,显示集合中的数据(说列表)。此列表包含多个 POJO。

POJO 由应用程序的数据访问层填充。如何在 iReports 中针对此要求设计报告模板?

4

3 回答 3

1

用于JRBeanCollectionDataSource您的报告。

于 2010-06-15T06:38:11.457 回答
1

行!找到了答案。步骤如下。

  1. 编译 bean 类并创建一个 JAR 文件。这需要有完整的包
  2. 将此 jar 添加到 ireports 中的 LIB 文件夹中
  3. 创建一个工厂/包装器类,该类具有填充集合的 createBeanCollection 方法
  4. 使用此类的顶级包作为 ireports 中的类路径
  5. 使用这个类作为带有方法的JavaBean 数据源。

完成所有这些后,使用新数据源创建一个报告,并在报告查询中,在 Java bean 上提供 FQN 并添加所需的字段。

于 2010-06-15T10:03:43.093 回答
0
BankDetailsList list = new BankDetailsList();       
ArrayList<BankDetails> lst = list.getDataBeanList();        
JRBeanCollectionDataSource beanColDataSource = new JRBeanCollectionDataSource(lst);

这里 BankDetails 是一个 POJO

public class BankDetails {

    public String bank_name;
    public Account account;
    public String custodian_account;
    public String custodian_name;
    public String agreement_type;
    public double exposure;
    public double collateral;
    public double independant_amount;
        public double net_exposure;

    BankDetails(String b_name, Account acc, String cust_account,
        String cust_name, String agr_type, double expo, double collat,
        double independant_amt, double net_exp) {

        this.bank_name = b_name;
        this.account = acc;
        this.custodian_account = cust_account;
        this.custodian_name = cust_name;
        this.agreement_type = agr_type;
        this.exposure = expo;
        this.collateral = collat;
        this.independant_amount = independant_amt;
        this.net_exposure = net_exp;
    }

    public String getBank_name() {
        return bank_name;
    }
    public void setBank_name(String bank_name) {
        this.bank_name = bank_name;
    }
    public Account getAccount() {
        return account;
    }
    public void setAccount(Account account) {
        this.account = account;
    }
    public String getCustodian_account() {
        return custodian_account;
    }
    public void setCustodian_account(String custodian_account) {
        this.custodian_account = custodian_account;
    }
    public String getCustodian_name() {
        return custodian_name;
    }
    public void setCustodian_name(String custodian_name) {
        this.custodian_name = custodian_name;
    }
    public String getAgreement_type() {
        return agreement_type;
    }
    public void setAgreement_type(String agreement_type) {
        this.agreement_type = agreement_type;
    }
    public double getExposure() {
        return exposure;
    }
    public void setExposure(double exposure) {
        this.exposure = exposure;
    }
    public double getCollateral() {
        return collateral;
    }
    public void setCollateral(double collateral) {
        this.collateral = collateral;
    }
    public double getIndependant_amount() {
        return independant_amount;
    }
    public void setIndependant_amount(double independant_amount) {
        this.independant_amount = independant_amount;
    }
    public double getNet_exposure() {
        return net_exposure;
    }
    public void setNet_exposure(double net_exposure) {
        this.net_exposure = net_exposure;
    }
}

帐户 POJO:

public class Account {

    public int account_id;
    public String account_name;

    Account(int acc_id, String acc_name){
        this.account_id = acc_id;
        this.account_name = acc_name;
    }

    public int getAccount_id() {
        return account_id;
    }

    public void setAccount_id(int account_id) {
        this.account_id = account_id;
    }

    public String getAccount_name() {
        return account_name;
    }

    public void setAccount_name(String account_name) {
        this.account_name = account_name;
    }
}
于 2015-08-17T07:29:38.213 回答