いくつかのレポートがあり、それぞれにいくつかのテーブルが含まれています。
tableA、tableB、tableC の 3 つのテーブルがあるとします。次の Oracle 関数を使用して、結果セットをフィルタリングし、レポート パラメータも渡したいと考えています。
AND function(tableB.field1, tableB.field2, tableB.field3, {?report_parameter}) = 'S'
注意すべき事実:
- Oracle 関数は、Crystal Reports の SQL 式や SQL コマンドでのみ使用できます。
- SQL 式にレポート パラメーターを含めることはできません (そのため、オプションではありません)。
- Crystal Reports では、レポート テーブルを SQL コマンドに置き換えることができますが、複数のテーブルを単一の SQL コマンドに置き換えることはできません。
- すべてのレポートを最初から作り直す必要はありません。
- Crystal はレポートの実行時に単一のクエリでテーブルと SQL コマンドを変換しないため、高レベルのパフォーマンスに影響するため、単一のテーブルを SQL コマンドに置き換えたくありません。
- この Oracle 関数は、他のテーブルからデータを選択するため、レポート カスタム関数で書き換えることはできません。
- {?report_parameter} は、アプリケーションだけが知っている情報です。レポートをユーザーにエクスポートする前に、アプリケーションによって入力されます。
これを回避するにはどうすればよいですか?