0

私がやろうとしていることは、一見単純そうです。

サブレポート要素を含むマスターレポートがあります。サブレポートは、JRAbstractBeanDataSource0〜n個のサブレポートのコレクションを含むから入力されます。

マスターレポートでは、サブレポートは次の場所にあります。

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

これは正常に機能し、SUBREPORT_DIRはパラメータとしてコードのデータソースに渡されます。

ただし、私がする必要があるのは、サブレポートのプロパティに基づいて、次のような別のレポート名を選択することです。

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

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

たぶん、これについて考えたりアプローチしたりするためのより良い方法があります。

4

2 に答える 2

0

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

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

于 2011-01-27T21:26:04.690 に答える
0

マスターレポートが日付ソースアイテムに対して繰り返されるように、レポート名を設定する方法を見つけようとしていました。代わりに、クエリを完全に動的にし、パラメータとして渡しました。これが、サブレポートごとに変更する必要があったことです。

于 2012-02-08T19:43:30.483 に答える