コンテンツフレーム起動

一覧処理からの画面の呼出 文書を SAP ライブラリストラクチャに組み込む

一覧処理から画面を呼び出すには、以下の命令を使用します。

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) を選択しても基本一覧に制御が戻ります。

 

 

 

 

コンテンツフレーム終了