要するに:
null
サブレポートに定数文字列を渡していますが、サブレポート SQL でP!{}
構文を使用すると、何らかの理由で値が取得されます。
さらに詳しく:
ほぼ同一のサブレポートが 2 つあります。各サブレポートを個別に定義する代わりに、一般的なサブレポートを使用したいと考えています。これで、文字列パラメーターを取るこのサブレポートができmain_or_side
ました。アイデアは、値「メイン」または「サイド」をサブレポートに渡し、これを SQL クエリで使用することです。
クエリでは、パラメーターは次のように使用されます。SELECT table.P!{main_or_side}_diagnosis ...
たとえばSELECT main_diagnosis ...
、パラメーターで呼び出されたときに結果が得られるはずです。
iReports でサブレポートをプレビューすると、パラメータの入力を求めるプロンプトが表示され、「main」または「side」と入力するとレポートが正常に表示されます。new String("main")
値を-parameter として渡すように設定した mainreport をプレビューするとside_or_main
、エラーが返されます。
Unknown column 'table.null_diagnosis' in 'field list'
クエリを静的にし、textField を追加してその値を表示するとmain_or_side
、渡された値が正常に表示されます。したがって、値は確実にサブレポートに渡されます。SQLクエリ内でP!{main_or_side}
評価されるのはnull
どうしてでしょうか?
編集:
ここでスニペットを過去にできるように、jrxml ファイルのコピーのクリーンアップと名前変更を行っていました。無関係な要素をいくつか削除し、名前を変更してコードを記述に一致させた後、突然機能し始めました。
元のファイルで問題が解決しない。変更されたファイルと比較して違いを確認し、問題の原因が判明した場合はここに投稿します。