!--a11y-->

スクリーンペインタで、機能コード ( 最大 20 文字) をチェックボックスとラジオボタンに割り当てことができます。
機能コードが割り当てられていない チェックボックスやラジオボタンは、通常の入出力項目と同様に動作します。この場合、オブジェクトをクリックすると、項目の内奥が変更されますが、PAI イベントはトリガされません ( これに対し、押ボタンの場合は、機能コードが空白でも常に PAI イベントがトリガされます) 。
チェックボックスまたはラジオボタンに機能コードが割り当てられている場合は、それをクリックすると、項目の内容が変更されると共に、PAI イベントがトリガされ、OK CODE 項目に機能コードが取り込まれます。追加情報については、機能コードの読込を参照してください。
各チェックボックスには個別に機能コードを割り当てられますが、ラジオボタンの場合は、1 つのグループのすべてのラジオボタン全体に対して割当可能な機能コードは 1 つのみです。スクリーンペインタで機能コードをいずれかのラジオボタンに割り当てると、同じ機能コードがそのグループの残りのすべてのラジオボタンに自動で適用されます。
機能コード付のチェックボタンとラジオボタンは、次のように使用することができます。
キ Dynpro の一部を処理する場合 ( コンテキスト依存処理) 。たとえば、ラジオボタンまたはチェックボックスが選択されたときにのみ、特定のデータが読み込まれ、対応する入出力項目に取り込まれます。
キ チェックボックスまたはラジオボックスのそれぞれに対応するパターンで、項目にデータを取り込むことができます。代表的な例として、文書の書式設定があります。入力項目はいずれも個別に処理できますが、1 つのパターンを選択することによって、すべての入力項目に一貫したデータを同時に取り込むこともできます。
キ チェックボックスまたはラジオボタンを使って、Dynpro の動的変更 を直接制御することができます。たとえば、先にラジオボタンが選択されていない場合に入出力項目へのユーザの入力を不可能するにすることができます。
押ボタンの作成時と同じく、チェックボックスやラジオボタンに機能コードを割り当てるときには、その機能コードが GUI ステータスの機能コードと一致しないようにします。

PROGRAM demo_dynpro_check_radio.
DATA: radio1(1) TYPE c,
radio2(1) TYPE c, radio3(1) TYPE c,
field1(10) TYPE c, field2(10) TYPE c,
field3(10) TYPE c,
box TYPE c.
DATA: ok_code TYPE
sy-ucomm,
save_ok TYPE sy-ucomm.
CALL SCREEN 100.
MODULE user_command_0100
INPUT.
save_ok = ok_code.
CLEAR ok_code.
CASE save_ok.
WHEN 'RADIO'.
IF radio1 = 'X'.
field1 = 'Selected!'.
CLEAR: field2, field3.
ELSEIF radio2 = 'X'.
field2 = 'Selected!'.
CLEAR: field1, field3.
ELSEIF radio3 = 'X'.
field3 = 'Selected!'.
CLEAR: field1, field2.
ENDIF.
WHEN 'CANCEL'.
LEAVE PROGRAM.
ENDCASE.
ENDMODULE.
Dynpro 100 の次画面 ( 静的定義) は同じ Dynpro です。このレイアウトは次のようなものです。

エレメント一覧内の Dynpro 項目に関連する部分は、次のとおりです。
|
名称 |
型 |
定義長 |
書式 |
機能コード |
|
RADIO1 |
ラジオ |
1 |
CHAR |
RADIO |
|
FIELD1 |
入出力 |
10 |
CHAR |
|
|
RADIO2 |
ラジオ |
1 |
CHAR |
RADIO |
|
FIELD2 |
入出力 |
10 |
CHAR |
|
|
RADIO3 |
ラジオ |
1 |
CHAR |
RADIO |
|
FIELD3 |
入出力 |
10 |
CHAR |
|
|
BOX |
チェック |
1 |
CHAR |
CANCEL |
|
OK_CODE |
OK |
20 |
OK |
|
Dynpro 項目 FIELD1 〜 FIELD3 の入力オプションは、スクリーンペインタでオフに設定されています。
この Dynpro 制御ロジックは次のとおりです。
PROCESS BEFORE OUTPUT.
PROCESS AFTER
INPUT.
MODULE user_command_0100.
3 つのラジオボタンのいずれかを選択すると、そのたびに PAI イベントがトリガされ、機能コード RADIO と Dynpro 項目の内容が ABAP プログラムに渡されます。選択されたラジオボタンにもとづいて、ダイアログモジュールUSER_COMMAND_100 によって項目 FIELD1 〜 FIELD3 にデータが取り込まれます。これらの項目の内容は、次回 Dynpro が送られたときに表示されます。
PAI イベントは、チェックボックスが選択されたときもトリガされます。この場合、機能コード CANCEL が ABAP プログラムに渡され、ダイアログモジュール USER_COMMAND_100 によってプログラムが直ちに終了します。