!--a11y-->

SELECT-OPTIONS
文を使用すると、選択テーブルを宣言し、対応する入力項目を、関連付けられた選択画面上に作成することができます。関連するテキストは、
選択テキストとして修正できます。選択画面の処理時には、ユーザが入力項目に入力した値が選択テーブルのヘッダ行に割り当てられ、テーブルにアペンドされます。プログラムの宣言部分におけるこの文の位置によって、入力項目が属する選択画面が決まります。
SELECT-OPTIONS 文の基本書式は以下のとおりです。
SELECT-OPTIONS <seltab> FOR <f>.
この文は、プログラム内でローカルに宣言されている <f> 項目にリンクされた<seltab> 選択基準を宣言します。選択基準の名前は、現時点では 8 文字に制限されています。<f> の有効なデータ型は、F データ型を除く、すべての ABAP 基本型が該当します。F データ型、参照、および集約タイプは使用できません。選択基準を使用してデータベース選択を制限するには、<f> の宣言で、該当するデータベーステーブルの列を参照することをお奨めします。これで、ABAP ディクショナリですでに定義されたデータ型の全属性が継承されます。特に、ユーザは選択画面上で、これらの項目に対してディクショナリで定義された項目ヘルプ (F1) および入力可能値ヘルプ(F4) を利用できます。
選択テーブルは、選択基準と同じ名前 <seltab> であり、通常は選択画面でユーザによって設定されるか、または呼出元プログラムによって設定されます。選択テーブルは、プログラム内の他の内部テーブルと同様に処理することもできます。

REPORT DEMO.
DATA WA_CARRID TYPE SPFLI-CARRID.
SELECT-OPTIONS AIRLINE FOR WA_CARRID.
LOOP AT
AIRLINE.
WRITE: / 'SIGN:', AIRLINE-SIGN,
'OPTION:',
AIRLINE-OPTION,
'LOW:', AIRLINE-LOW,
'HIGH:',
AIRLINE-HIGH.
ENDLOOP.
実行可能プログラム DEMO が起動すると、次の標準選択画面が表示されます。
2 つの入力項目と、選択基準の追加値を入力するための押ボタンが表示されます。ユーザが最初の入力項目に入力した値は、選択テーブルの AIRLINE-LOW コンポーネントに書き込まれます。ユーザが 2 番目の入力項目に入力した値は、選択テーブルの AIRLINE-HIGH コンポーネントに書き込まれます。
たとえば、ユーザが次のように入力したとします。
出力結果は以下のとおりです。
SIGN: I OPTION: EQ LOW: AA HIGH:
ユーザが 2 番目の項目を空白のままにした場合 ( 単一項目比較) 、SIGN および OPTION のデフォルト設定は I および EQ となります。
たとえば、ユーザが次のように入力したとします。
出力結果は以下のとおりです。
SIGN: I OPTION: BT LOW: AA HIGH: LH
ユーザが 2 番目の項目に値を入力すると ( 範囲選択) 、SIGN および OPTION のデフォルト設定は I および BT となります。
より複雑な選択パターンを設定するには、ユーザは選択画面右側の
押ボタンを使用して、複合選択ウィンドウを表示し、以下の値を入力することができます。

および
ユーザが複合選択を採用した場合は、選択画面の矢印が緑色になり、複合選択が入力されたことを示します。
出力結果は次のとおりです。
SIGN: I OPTION: EQ LOW: AA HIGH:
SIGN: I OPTION: EQ LOW: AF HIGH:
SIGN: I OPTION: BT LOW: DL HIGH: LH
SIGN: I OPTION: BT LOW: SA HIGH: UA
複合選択の使用は、選択テーブルに複数行を追加することを意味します。
ユーザは複合選択として、排他基準を指定することもできます。
および
出力結果は次のとおりです。
SIGN: E OPTION: EQ LOW: FC HIGH:
SIGN: E OPTION: BT LOW: SQ HIGH: SR
排他基準が使用されると、選択テーブルの SIGN コンポーネントには値 E が設定されます。
SIGN および OPTION 値を明示的に設定するには、ユーザは選択画面または複合選択画面で、ダブルクリックまたは F2 の押下によって、該当する入力項目を選択する必要があります。

ユーザは選択オプションの更新画面 ( 単一項目比較の場合は上図のように表示される) で、OPTION 項目の演算子を選択し、画面下の行では SIGN 項目の値を I または E に切り替えることができます。選択画面では、入力項目の左側の各記号により、選択の種類が示されます。

これらの記号は、SIGN 項目の値が I の場合は緑色で表示されます。SIGN 項目の値が E の場合は、記号は赤色で表示されます。
この場合、一覧は次のように表示されます。
SIGN: E OPTION: GE LOW: AA HIGH: