2017-10-30 11 views
-2

豆からデータを取得する複雑なレポートを表示する必要があります。サポートされていないサブレポートセクションのタイプjaspersoftのArrayList

他のBeanのListを持っているコンテナBeanを作成しました。 TibcoのJaspersoftのメインレポートで

public class OreComputateContainerBean implements Serializable{ 
    private static final long serialVersionUID = 1L;  
    private Long id; 

    private List<ViewOreGiorniMeseTotBean> listViewOreGiorniMeseTotBean; 
    private List<ViewOreComputateMeseBean> listViewOreComputateMeseBean; 
    private List<ViewOreComputateBean> listViewOreComputateBean; 
} 

、私はサブレポートを追加し、私は次のようにサブレポートが作成される

<field name="listViewOreGiorniMeseTotBean" class="java.util.List"/> 

のようなフィールドを作成します。

<subreport> 
    <reportElement x="280" y="0" width="171" height="83" uuid="a0bfc3a5-e452-4f3e-a875-2eaaf7f367e6"/> 
     <subreportExpression><![CDATA[$F{listViewOreGiorniMeseTotBean}]]></subreportExpression> 
</subreport> 

私が構築しようとした際私のアプリケーションのレポートでは、次の例外が表示されます。

net.sf.jasperreports.engine.JRRuntimeException: Unsupported subreport section type java.util.ArrayList 

データが正しく表示されるようにサブレポートを作成するにはどうすればよいですか?

+1

1に類似したものに 'subreportExpression'がないデータソースを渡すために、メインレポートでのショーのレポート(サブレポート)を設定するためであるサブレポートの宣言を変更することです。 2)データソースは単なるListとして渡すことはできません。これは 'JRDataSource'インターフェースの実装でなければなりません –

答えて

1

サブレポートの定義には2つの問題があります。

  1. subreportExpression.jasperファイル
  2. データ参照をサブレポートへのパスを定義する必要がdataSourceExpressionとして渡す必要があります。さらに、JasperReportは、サブレポートデータソースをJRDataSourceのインスタンスにする必要があります。可能な解決策の

だから、1)が

<subreport> 
    <reportElement x="280" y="0" width="171" height="83" uuid="a0bfc3a5-e452-4f3e-a875-2eaaf7f367e6"/> 
    <dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{listViewOreGiorniMeseTotBean})]]></dataSourceExpression> 
    <subreportExpression><![CDATA[subreport_path_relative_to_SUBREPORT_DIR_variable.jasper"]]></subreportExpression> 
</subreport> 
関連する問題