8

JRBeanCollectionDataSource からレポートを生成しています。このレポートは、顧客の注文に関するものです。

これは私のコードです

public class Customer
{
    private String customerName;
    private String customerNo;
    private String customerAddress;
    private ArrayList<CustomerOrder> customerOrders;
    //Getters and Setters
}


private class CustomerOrder
{
    private String itemName;
    private BigDecimal amount;
    private int itemQuantity;
    //Getters and Setters
}

顧客の場合、顧客の詳細と顧客の注文のリストを含むレポートを生成する必要があります。JRBeanCollectionDataSourceコレクションを取るので、これが私がしたことです。

Customer cust; //Customer Instance

ArrayList<Customer> custList = new ArrayList<Customer>();
custList.add(cust); 

JRBeanCollectionDataSource rptData = new JRBeanCollectionDataSource(custList);

CustomerOrderリストを抽出Customerしてサブレポートとして渡すにはどうすればよいですか?

4

1 に答える 1

13

サブレポートのデータソース式を設定できるはずです。

new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{customerOrders})

結果の xml には、次のようなサブレポート タグが含まれている必要があります。

<subreport>
    <reportElement uuid="e9fc4a60-3844-41b7-a38c-768f06f09b44" x="0" y="57" width="555" height="68"/>
    <dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{customerOrders})]]></dataSourceExpression>
    <subreportExpression><![CDATA[$P{SUBREPORT_DIR} + "report2_subreport1.jasper"]]></subreportExpression>
</subreport>

他に確認する必要があるのLanguageは、レポート プロパティの が に設定されていることだけJavaです。

于 2012-11-20T14:24:34.100 に答える