!--a11y-->

選択画面を定義するには、次の 3 つ の ABAP 命令があります。
キ 単一項目を定義する PARAMETERS
キ 複合選択を定義する SELECT-OPTIONS
キ 選択画面の書式を設定し、ユーザ固有の選択画面を定義する SELECTION-SCREEN
これらの ABAP 命令は、ABAP プログラムの宣言部分に組み込まれます。選択画面を定義する際には、実行可能プログラム ( レポート) の標準選択画面とあらゆるタイプのプログラムのユーザ定義選択画面を区別する必要があります。
実行可能プログラムの標準選択画面は事前に定義されており、Dynpro 番号は 1000 です。実行可能プログラム ( レポート) のユーザ定義選択画面の定義の外、つまり、
SELECTION-SCREEN BEGIN OF ...
...
SELECTION-SCREEN END OF
...
の各命令の間に含まれない PARAMETERS 、SELECT-OPTIONS 、およびSELECTION-SCREEN 命令すべてによって、標準選択画面の入力項目と書式が定義されます。わかりやすくするために、標準選択画面を構成するすべての命令をまとめてから、その他の選択画面を定義する必要があります。標準選択画面の入力項目は、実行可能プログラム ( レポート) のみで定義することができます。他のすべてのプログラムでは、PARAMETERS 、SELECT-OPTIONS 、および SELECTION-SCREEN の各命令が上記の命令内になければなりません。
2 つの命令
SELECTION-SCREEN BEGIN OF SCREEN <numb> [TITLE <title>] [AS
WINDOW].
...
SELECTION-SCREEN END OF SCREEN <numb>.
によって、Dynpro 番号<numb> のユーザ定義選択画面が定義されます。これらの 2 つの命令の間に含まれる PARAMETERS 、SELECT-OPTIONS 、および SELECTION-SCREEN 命令すべてによって、この選択画面の入力項目と書式が定義されます。Dynpro 番号 <numb> は、標準選択画面の番号である 1000 を除く任意の 4 桁の番号です。また、プログラムの別の画面にすでに使用されている番号を誤って選択画面に割り当てないようにする必要があります。
TITLE <title> オプションを使用すると、ユーザー定義選択画面のタイトルを定義することができます。<title> は、静的なテキストシンボルまたは動的な文字項目のいずれかです。文字項目を使用する場合は、自動的に生成されるので、DATA 命令を使用して定義しないでください。文字項目には、INITIALIZATION イベント時に値が書き込まれます。標準選択画面のタイトルは常に、実行可能プログラムの名称です。
AS WINDOW オプションを使用して、モーダルダイアログボックスとしてユーザ定義選択画面を呼び出すことができます。このウィンドウは、画面が呼び出される際に定義されます。AS WINDOW オプションを使用すると、選択画面に関連する警告やエラーメッセージもモーダルダイアログボックスとして表示されます。選択画面のステータスバーに表示されるわけではありません。
プログラムで複数の選択画面を定義する場合、次の命令を使用して、ある選択画面のエレメントを別の選択画面で再利用することができます。
SELECTION SCREEN
INCLUDE BLOCKS
<block>
|
PARAMETERS <p>
|
SELECT-OPTIONS <selcrit>
| COMMENT
<comm>
| PUSH-BUTTON.<push>.
別の選択画面ですでに宣言されている以下のエレメントのいずれかを指定することができます。
キ <block> という名称のブロック
キ <p> という名称のパラメータ
キ <selcrit> という名称の選択基準
キ <comm> という名称のコメント
キ <push> という名称の押ボタン
選択画面の GUI ステータスは、システムによって生成されます。選択画面の PBO イベント内の SET PF-STATUS 命令は、標準の GUI ステータスには影響しません。選択画面に独自の GUI ステータスを使用したり、標準の GUI ステータスの機能を無効化したりする場合、選択画面の PBO イベントで以下の汎用モジュールのいずれかを使用することができます。
キ RS_SET_SELSCREEN_STATUS
同じ ABAP プログラムで定義されている別の GUI ステータスを設定します。または、標準の GUI ステータスの機能を無効化します。
キ RS_EXTERNAL_SELSCREEN_STATUS
外部汎用グループで定義されている GUI ステータスを設定します。この汎用グループの特定の汎用モジュールのステータスを設定するには、SET PF-STATUS 命令を使用します。ステータスを設定する汎用モジュールの名称を、パラメータとして汎用モジュールRS_EXTERNAL_SELSCREEN_STATUS に渡す必要があります。

REPORT SELSCREENDEF.
...
PARAMETERS PAR1
....
SELECT-OPTIONS SEL1 FOR
... .
...
SELECTION-SCREEN BEGIN OF
SCREEN 500 AS WINDOW.
PARAMETERS PAR2 ....
SELECT-OPTIONS SEL2 FOR ....
...
SELECTION-SCREEN END OF
SCREEN 500.
SELECTION-SCREEN BEGIN OF
SCREEN 600 TITLE TEXT-100.
SELECTION-SCREEN INCLUDE: PARAMETERS PAR1,
SELECT-OPTIONS
SEL1.
PARAMETERS PAR3 ....
SELECT-OPTIONS SEL3 ....
...
SELECTION-SCREEN END OF
SCREEN 600.
標準選択画面が 1 つ、ユーザ定義選択画面が 2 つの合計 3 つの選択画面が定義されています。標準選択画面が生成されるためには、プログラムはタイプ 1 でなければなりません。選択画面 500 は、モーダルダイアログボックスとして呼び出されるように定義されています。選択画面 600 には、タイトルとしてテキストシンボル 100 が表示されます。また、この選択画面では、標準選択画面のエレメント PAR1 および SEL1 が使用されています。