2011-01-21 4 views
0

私がしようとしていることは、一見単純です。JasperReports:subreportExpressionを動的に変更する方法

サブレポート要素を含むマスターレポートがあります。サブレポートにはJRAbstractBeanDataSourceが入力され、0-nサブレポートのコレクションが格納されます。マスターレポートで

は、サブレポートがで発見された:

<subreportExpression class="java.lang.String"><![CDATA[$P{SUBREPORT_DIR} + $F{subReportFileName}]]></subreportExpression> 

これは正常に動作し、SUBREPORT_DIRは、コード内のデータソースへのparamとして渡されます。

私も行う必要がある何を、のようなもの、サブレポートのプロパティに基づいて、別のレポート名を選択している:ある

<subreportExpression class="java.lang.String"><![CDATA[$P{SUBREPORT_DIR} + "$F{subReportFileName}"]]></subreportExpression> 

、指定したデータソースにサブレポート件のデータのコレクション内の各項目を許可.jasperのファイル名になります(つまり、使用するサブレポートを選択できるようになります)。

おそらく、これについて考えたりアプローチしたりするより良い方法があります。

答えて

0

私は、レポートの名前を、日付のソース項目を反復したマスターレポートとして設定する方法を見つけようとしていました。代わりに、私はクエリを完全に動的にし、パラメータとして渡しました。それは私がサブレポートごとに変更する必要があったことです。

0

ご質問にコードを含める場合は、コンポジションウィンドウの上にあるコードボタンを使用してください。私たちはあなたの例を見ることができません。コンポジションウィンドウの右上隅にある小さなオレンジ色の四角の中の疑問符をクリックすると、Markdown編集チュートリアルに移動します。

あなたが達成しようとしていることは少し不明です。すべてのサブレポートをレポートに含める場合は、コレクション内の名前を繰り返し処理する方法や、サブレポートの選択を動的にする必要がある場合は、コレクションからはわかりません。メインレポートに複数のサブレポートを含める方法がわかりません。レポート名を動的に選択する場合は、サブレポート名をコードからレポートに渡すパラメータにするだけではいかがですか。選択した基準に基づいて、必要なレポート名を決定するロジックを実行できます。それがあなたが探しているものではない場合は、おそらくあなたの質問のもう少し詳細が役立つでしょう。

+0

おっと、コードマークアップを忘れました:)ありがとう。私は、レポートの名前をマスターレポートとして設定する方法を見つけようとしていました。代わりに、私はクエリを完全に動的にし、パラメータとして渡しました。それは私がサブレポートごとに変更する必要があったことです。とにかく、ありがとうございました。 – mtyson

関連する問題