別の入力コントロールに入力するために使用されるいくつかの入力コントロールを含むレポートがあります。
私の入力コントロール:
- GPI - 製品コードを持つ複数選択入力コントロール。パラメータはコレクションです。
- NAME_LOOKUP - ユーザーが製品名を入力できる単一値のテキスト ボックス。パラメータは文字列です。
- NDC - GPIおよびNAME_LOOKUPに入力された内容に基づいて値を取得する薬物コードのリスト。
NDCを設定するクエリには、次のWHERE句があります。
WHERE (
REGEXP_LIKE(DESCRIPTION, $P{name_lookup}, 'i')
OR REGEXP_LIKE(NDC, $P{name_lookup}, 'i')
)
OR ($X{IN, GPI, gpi})
これは、構文が設計されているとおりに機能します。ユーザーがリストからGPI値を$X
選択しない場合、私のNDC入力コントロールはすべての薬物コードを表示します。ただし、GPI入力コントロールから値が実際に選択されている場合にのみ、ドラッグ コードを表示したいと考えています。
やってみると
WHERE (
REGEXP_LIKE(DESCRIPTION, $P{name_lookup}, 'i')
OR REGEXP_LIKE(NDC, $P{name_lookup}, 'i')
)
OR ($X{IN, GPI, gpi} AND $P{gpi} IS NOT NULL)
NDC入力コントロールのJasperReports Serverで無効な列タイプを取得します。
やってみると
WHERE (
REGEXP_LIKE(DESCRIPTION, $P{name_lookup}, 'i')
OR REGEXP_LIKE(NDC, $P{name_lookup}, 'i')
)
OR ($X{IN, GPI, gpi} AND $P!{gpi} IS NOT NULL)
式が見つからないというエラーが発生します。
NDC入力コントロールの結果をすべての結果ではなく、選択したGPIのみに制限するにはどうすればよいですか?