2011-12-27 15 views
5

は私が使ったHibernate POJOを持つレポート 1.an一対一の関連別のオブジェクトへ 2.one対多の別のオブジェクトジャスパーにサブレポートするPOJOを渡し

Iとの関連(コレクション)これらの関連がサブレポートになるようにジャスパーレポートを作成しようとしています。これは正常に動作します

<subreport> 
<reportElement x="40" y="16" width="100" height="30"/> 
<dataSourceExpression> 
    <![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{phones})]]> 
</dataSourceExpression> 
<subreportExpression> 
    <![CDATA[$P{SUBREPORT_DIR} + "subreport1.jasper"]]> 
</subreportExpression> 
</subreport> 

次のように はmany-to-one関連のために私は、データソースを渡しています。そしてここに私が1対1の関連付けのために定義した方法があります。

<subreport> 
<reportElement x="25" y="91" width="200" height="59"/> 
<dataSourceExpression> 
    <![CDATA[new net.sf.jasperreports.engine.data.JRBeanArrayDataSource([$F{batchHeaderRecord}] as java.lang.Object[])]]> 
</dataSourceExpression> 
<subreportExpression><![CDATA[$P{SUBREPORT_DIR} + "batchHeaderReport.jasper"]]> 
</subreportExpression> 
</subreport> 

しかし、これは機能しません。私が間違っている場所を教えてもらえますか?

+0

'$ F {batchHeaderRecord}'フィールドのタイプは何ですか? –

答えて

5
new net.sf.jasperreports.engine.data.JRBeanArrayDataSource([$F{batchHeaderRecord}] as java.lang.Object[]) 

は有効なJavaコードではありません。ただ、グルーヴィーなエラーを修正するためのレポートのためのJava

new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource(java.util.Collections.singleton($F{batchHeaderRecord})) 

または

new net.sf.jasperreports.engine.data.JRBeanArrayDataSource(new Object[] {$F{batchHeaderRecord}}) 
+0

ありがとうございました。 JRBeanCollectionDataSourceは正常に動作しています。しかし、JRBeanArrayDataSourceを使用すると、次のエラーが表示されます。net.sf.jasperreports.engine.JRException:レポート式のクラスファイルをコンパイルするときにエラーが発生しました:org.codehaus.groovy.control.MultipleCompilationErrorsException:起動に失敗しました:calculator_tdsSample_1325043312140_397478:187:配列のコンストラクタ呼び出し:187列:91. File:calculator_tdsSample_1325043312140_397478 @ line 187、column 91 – PrasanthNath

+0

こんにちは、 私は同じ問題に直面しています。異なるシナリオを使用しています。私はテーブルにリストを表示しようとしていますが、私のリストはMemberListのような別のエンティティと1対1の関係を持っています。従業員と1対1の関係を持っています Member_ID | Employee.FullName |同じ表で 助けてください –

1

設定languageを使用しています。

関連する問題