1、相關命令
LEAVE TO LIST-PROCESSING [AND RETURN TO SCREEN <nnnn>].
LEAVE LIST-PROCESSING.
2、使用說明
3、推薦設計思路
設計一個空螢幕,在需要調用list的螢幕的邏輯流中使用CALL SCREEN調用空螢幕。空螢幕的next screen設定為0,不需要PAI,只需要在PBO中設計一個Module,這個module的具體步驟如下:
- 首先調用LEAVE TO LIST-PROCESSING AND RETURN TO SCREEN 0.
- 為list設定GUI status ;如:設定SPACE 或者為自己定義的.
- 使用下列語句使空螢幕不輸出:
SUPPRESS DIALOG.
or
LEAVE SCREEN.
- 進行List輸出和處理.
4、樣本
REPORT demo_leave_to_list_processing .
TABLES sdyn_conn.
DATA: wa_spfli TYPE spfli,
flightdate TYPE sflight-fldate.
CALL SCREEN 100.
MODULE status_0100 OUTPUT.
SET PF-STATUS 'SCREEN_100'.
ENDMODULE.
MODULE cancel INPUT.
LEAVE PROGRAM.
ENDMODULE.
MODULE user_command_0100.
CALL SCREEN 500.
SET SCREEN 100.
ENDMODULE.
MODULE call_list_500 OUTPUT.
LEAVE TO LIST-PROCESSING AND RETURN TO SCREEN 0.
SET PF-STATUS space.
SUPPRESS DIALOG.
SELECT carrid connid cityfrom cityto
FROM spfli
INTO CORRESPONDING FIELDS OF wa_spfli
WHERE carrid = sdyn_conn-carrid.
WRITE: / wa_spfli-carrid, wa_spfli-connid,
wa_spfli-cityfrom, wa_spfli-cityto.
HIDE: wa_spfli-carrid, wa_spfli-connid.
ENDSELECT.
CLEAR: wa_spfli-carrid.
ENDMODULE.
TOP-OF-PAGE.
WRITE text-001 COLOR COL_HEADING.
ULINE.
TOP-OF-PAGE DURING LINE-SELECTION.
WRITE sy-lisel COLOR COL_HEADING.
ULINE.
AT LINE-SELECTION.
CHECK not wa_spfli-carrid is initial.
SELECT fldate
FROM sflight
INTO flightdate
WHERE carrid = wa_spfli-carrid AND
connid = wa_spfli-connid.
WRITE / flightdate.
ENDSELECT.
CLEAR: wa_spfli-carrid.
該樣本螢幕100隻包含一個輸入欄位(SDYN_CONN-CARRID ),在螢幕100的邏輯流中會調用list處理.螢幕100的邏輯流如下:
PROCESS BEFORE OUTPUT.
MODULE STATUS_0100.
PROCESS AFTER INPUT.
MODULE CANCEL AT EXIT-COMMAND.
MODULE USER_COMMAND_0100.
在螢幕100的PAI的module USER_COMMAND_100 將使用CALL SCREEN調用螢幕500。螢幕500的邏輯流中封裝了所有List處理,螢幕500的邏輯流如下:
PROCESS BEFORE OUTPUT.
MODULE CALL_LIST_500.
PROCESS AFTER INPUT.
螢幕500的PBO的module CALL_LIST_500定義了list處理代碼。另外由於螢幕500的螢幕流設定為0,該程式從List處理返回時到螢幕100的USER_COMMAND_100的調用CALL SCREEN 500的語句之後.
該程式會在list處理時顯示一個明細List,具體代碼參見AT LINE-SELECTION、TOP-OF-PAGE 和 TOP-OF-PAGE DURING LINE-SELECTION事件代碼.