3

1 つのサブレポートを含むJasperReportsでレポートを作成する必要がありますが、サブレポートはリスト パラメーターの値ごとに繰り返されます。例:

1 つのサブレポートに渡されるパラメータ リスト: 1,2,3,4

私の報告書 :

  • 渡されたパラメーターの値 1 のサブレポート (クロステーブル + 改ページ)
  • 渡されたパラメーターの値 2 のサブレポート (クロステーブル + 改ページ)
  • 渡されたパラメーターの値 3 のサブレポート (クロステーブル + 改ページ)
  • 渡されたパラメーターの値 4 のサブレポート (クロステーブル + 改ページ)**

次に、サブレポートには、値ごとに X 回繰り返す必要がある別の「サブサブレポート」も含まれます。例: 渡されたパラメーターの値 1 のサブレポート(クロステーブル + 改ページ):

  • 値 1.1 の「サブサブレポート」(別のクロステーブル)
  • 値 1.2 の「サブサブレポート」(別のクロステーブル)
  • 値 1.3 の「サブサブレポート」(別のクロステーブル)

言い換えれば、同じサブレポートをループしようとしていますが、次のような異なるデータを使用しています:

for(i=0; i<list.lenght();i++){
   print(subreport(i));
}

どうすればできるのかわかりません。私の例が明確であることを願っています。前もって感謝します

4

2 に答える 2

2

詳細バンドは、レコードごとに起動します。したがって、入力コントロールが $P{myCustomers} で、メイン レポートのクエリが次の場合:

SELECT customer_id
FROM customers
WHERE $X{IN, customer_id, myCustomers}

次に、メイン レポートには $F{customer_id} という 1 つのフィールドがあります。サブレポートには独自のパラメーターが必要であり、メイン レポートから値を取得します。サブレポートをメイン レポートの詳細バンドに挿入します。メイン レポート内からサブレポートをクリックし、メイン レポートの [プロパティ] ウィンドウで [パラメーター] をクリックします。「名前」列は、入力値を受け入れるサブレポート内のパラメーターの名前であり、「式」フィールドは渡す値です。したがって、サブレポートに顧客 ID のパラメーターもある場合、名前は customer_id で、渡す式は $F{customer_id} です。

iReport のドキュメント ( http://community.jaspersoft.com/documentation/ireport-ultimate-guide ) には、サブレポートに関する情報が 90 ページにあります。

于 2013-06-14T18:34:55.340 に答える
0

レポート グループを使用してみてください。グループは値または式に基づいているため、サブレポートをグループに埋め込むことができます。

于 2013-06-25T18:39:53.120 に答える