サブレポートオブジェクトには特定のフィールドがあるため、メインレポートからサブレポートにパラメーターを渡す方法を理解しています。ただし、(サブレポートではなく)コンシューマとしてテーブルまたはリストオブジェクトを使用して同じことを行いたいと思います。出来ますか?
たとえば、メインレポートクエリで入力できる「customerID」のパラメータがあるが、このパラメータをテーブルのデータセットのSQLクエリに渡すことができないようだとします。
パラメータ、フィールド、変数のさまざまな組み合わせを試しましたが、まだ試していません。
この種のことにはサブレポートの実装が必要ですか?
(重要で明らかでない場合は、JDBCを使用しています)
パラメーターを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
使用しているバージョンがわかりませんが、iReport 3.7.6でできました。
まず、データセットにパラメーターを追加します。
次に、値をパラメーターに渡すには、レポートインスペクターで[テーブル]を右クリックし、[テーブルデータソースの編集]を選択します。 [パラメータ]タブに移動します。各データセットパラメーターは、メインレポートのパラメーター、フィールド、または変数から値を取得できます。
パラメータをメインレポートからiReport上位バージョンのテーブルまたはリストデータソースに渡すには、次の手順を実行する必要があります
簡単なテストレポートを作成して、あなたがやっていたことを再現しました。
ここに私が行った手順があります。
レポートにパラメーターを作成します。顧客ID
ハッシュマップでメインレポートに渡します。
hashmap.put("customerID", "12345");
レポートで、プロパティThe language of for the dataset query
をSQL
に設定します。
プロパティQuery text
を以下のようなものに設定します。
select * from * customers c where c.ID=$P{customerID}