!--a11y-->

一覧処理から画面を呼び出すには、以下の命令を使用します。
CALL SCREEN <nnnn>
この命令は、セクション画面順序の呼出で説明されているように、画面順序をプログラムフローに挿入します。一覧プロセッサからダイアログプロセッサに制御が渡されます。
呼出時のコンテキストが保持されます。特定の一覧レベルの処理中に画面順序を呼び出すと、次の画面が 0 になる画面の最後まで処理が続行されます。次に、ダイアログプロセッサから一覧プロセッサに制御が渡され、CALL SCREEN 命令の後で処理が実行されます。

以下のプログラムは、論理データベース F1S に接続されています。
REPORT demo_call_screen_from_list.
NODES spfli.
TABLES
demo_conn.
DATA: ok_code LIKE
sy-ucomm,
save_ok LIKE sy-ucomm.
TOP-OF-PAGE.
WRITE 'Liste von Flgen'(001) COLOR COL_HEADING.
ULINE.
GET spfli FIELDS carrid
connid.
WRITE: /
spfli-carrid, spfli-connid.
HIDE: spfli-carrid,
spfli-connid.
END-OF-SELECTION.
CLEAR: spfli-carrid, spfli-connid.
AT
LINE-SELECTION.
CHECK not spfli-carrid is initial.
demo_conn-carrid = spfli-carrid.
demo_conn-connid = spfli-connid.
CALL SCREEN 100.
CLEAR: spfli-carrid, spfli-connid.
MODULE cancel
INPUT.
LEAVE PROGRAM.
ENDMODULE.
MODULE status_0100
OUTPUT.
SET PF-STATUS 'SCREEN_100'.
ENDMODULE.
MODULE
user_command_0100
INPUT.
save_ok =
ok_code.
CLEAR
ok_code.
CASE
save_ok.
WHEN
'BACK'.
LEAVE TO SCREEN 0.
WHEN OTHERS.
SELECT SINGLE *
FROM sflight
INTO CORRESPONDING
FIELDS OF demo_conn
WHERE carrid =
demo_conn-carrid AND
connid
= demo_conn-connid AND
fldate
= demo_conn-fldate.
IF sy-subrc ne 0.
MESSAGE
e047(sabapdocu).
ELSE.
SET SCREEN 200.
ENDIF.
ENDCASE.
ENDMODULE.
MODULE status_0200
OUTPUT.
SET PF-STATUS 'SCREEN_200'.
ENDMODULE.
MODULE
user_command_0200
INPUT.
save_ok =
ok_code.
CLEAR
ok_code.
CASE
save_ok.
WHEN
'BACK'.
LEAVE TO SCREEN 100.
WHEN 'SAVE'.
...
"e.g. update records in database
MESSAGE i888(sabapdocu) WITH text-002.
SET SCREEN 0.
ENDCASE.
ENDMODULE.
プログラムを実行すると、論理データベースの選択画面で選択を入力することができ、その後で基本一覧が表示されます。
一覧行を選択すると、AT LINE-SELECTION イベントが開始され、画面 100 が呼び出されます。2 つの画面項目のコンテキストは ABAP プログラムで設定されます。画面 100 のレイアウトは以下のようになります。
この制御ロジックは以下のようになります。
PROCESS BEFORE
OUTPUT.
MODULE STATUS_0100.
PROCESS AFTER
INPUT.
MODULE CANCEL AT EXIT-COMMAND.
FIELD DEMO_CONN-FLDATE MODULE USER_COMMAND_0100.
一覧から選択したフライトのフライト日付を入力することができます。続行を選択すると、対応する日付がテーブル SFLIGHT から読み込まれ、画面 200 が次画面として設定されます。画面 200 のレイアウトは以下のようになります。
この制御ロジックは以下のようになります。
PROCESS BEFORE
OUTPUT.
MODULE STATUS_0200.
PROCESS AFTER
INPUT.
MODULE CANCEL AT EXIT-COMMAND.
MODULE USER_COMMAND_0200.
ユーザは、選択したフライトのデータを変更および保存することができます( データベース更新のためのプログラミングは、この例では示されていません) 。
画面が処理されると、次の画面が 0 に設定され、画面順序が終了します。システムは基本一覧に戻ります。
または、2 つの画面のいずれかで前画面 ( 機能コード BACK) を選択しても基本一覧に制御が戻ります。