web-dev-qa-db-ja.com

iReport:テーブルまたはリストのメインレポートクエリからデータセットクエリにパラメータを渡す

サブレポートオブジェクトには特定のフィールドがあるため、メインレポートからサブレポートにパラメーターを渡す方法を理解しています。ただし、(サブレポートではなく)コンシューマとしてテーブルまたはリストオブジェクトを使用して同じことを行いたいと思います。出来ますか?

たとえば、メインレポートクエリで入力できる「customerID」のパラメータがあるが、このパラメータをテーブルのデータセットのSQLクエリに渡すことができないようだとします。

パラメータ、フィールド、変数のさまざまな組み合わせを試しましたが、まだ試していません。

この種のことにはサブレポートの実装が必要ですか?

(重要で明らかでない場合は、JDBCを使用しています)

20
todb

パラメーターをmain reportからtableまたはlist datasourcesに渡すにはiReport3.6.7+、次の手順を実行する必要があります。

1)メインレポートのパラメーターセクションを右クリックして、メインレポートに必須パラメーターを作成します---- ->パラメータを追加-------->新しく追加したパラメータのプロパティ(データ型)を希望のパラメータに設定します。

2)手順1とまったく同じように、テーブル/リストのデータソースのパラメーターセクションに同等のパラメーターを作成します。

3)レポートエクスプローラーから、テーブルを右クリックおよびテーブルデータセットの編集をクリックします------>パラメータタブを選択します ----------->addをクリックします---------->パラメータ(ステップ1でデータセットのパラメータセクションで作成した)をupper combo(すなわち、データセットのパラメーター名)------>次に下のボタンをクリックします(すなわち)値式、つまりステップ1で追加したパラメーターを割り当てます。

ソース: http://hamroblog-sristi.blogspot.fr/2011/04/passing-parameters-from-main-report-to.html

22
Ouadie

使用しているバージョンがわかりませんが、iReport 3.7.6でできました。

まず、データセットにパラメーターを追加します。

次に、値をパラメーターに渡すには、レポートインスペクターで[テーブル]を右クリックし、[テーブルデータソースの編集]を選択します。 [パラメータ]タブに移動します。各データセットパラメーターは、メインレポートのパラメーター、フィールド、または変数から値を取得できます。

12
Lost In Code

パラメータをメインレポートからiReport上位バージョンのテーブルまたはリストデータソースに渡すには、次の手順を実行する必要があります

  1. メインレポートのパラメーターセクションを右クリックして、メインレポートに必要なパラメーターを作成します------>パラメーターを追加-------->新しく追加したパラメーターのプロパティ(データ型)を目的のパラメーターに設定します。
  2. 手順1とまったく同じように、テーブル/リストのデータソースのパラメーターセクションに同等のパラメーターを作成します。
  3. レポートエクスプローラーから、テーブルを右クリックして[テーブルデータセットの編集]をクリックします------> [パラメーター]タブを選択します-----------> [追加]をクリックします--------- ->上のコンボ(つまり、データセットパラメーター名)からパラメーター(手順2でデータセットのパラメーターセクションで作成したもの)を選択します。手順1で追加しました。
0
Madhuka Dilhan

簡単なテストレポートを作成して、あなたがやっていたことを再現しました。

ここに私が行った手順があります。

  • レポートにパラメーターを作成します。顧客ID

  • ハッシュマップでメインレポートに渡します。

    hashmap.put("customerID", "12345");

  • レポートで、プロパティThe language of for the dataset querySQLに設定します。

  • プロパティQuery textを以下のようなものに設定します。

    select * from * customers c where c.ID=$P{customerID}

0
Gordon