Dialog Programming ABAP 1 2ZPU 105301PROG 2 n
Dialog Programming 整合實例 ABAP 楊子青 1
報表程式 2:ZPU 105_301_PROG 2 n PARAMETERS ANO TYPE zpu 105_301_show-team. n START-OF-SELECTION. data itab TYPE STANDARD TABLE OF ZPU 105_301_show WITH HEADER LINE. n n n SELECT * FROM ZPU 105_301_show INTO TABLE ITAB WHERE TEAM = ANO. IF SY-SUBRC = 0. LOOP AT ITAB. WRITE: / itab-SHOWNAME, ITAB-SHOWYEAR. ENDLOOP. ELSE. WRITE: / '查無此劇團之演出節目'. ENDIF. ABAP 楊子青 3
報表程式 3:ZPU 105_301_PROG 3 n n n n n select-OPTIONS A FOR zpu 105_301_show-team. INITIALIZATION. set TITLEBAR 'T 00'. top-of-page. set TITLEBAR 'T 02'. START-OF-SELECTION. DATA wa type zpu 105_301_art. select * from zpu 105_301_art into wa WHERE artid in a. n write: / wa-artid COLOR 4, 11(20) wa-artname color 5, 41(10) wa-arttel COLOR 6, wa-arturl COLOR 7. HIDE: wa-artid, wa-artname. n ENDSELECT. n if sy-subrc <> 0. write: / 'No Data'(101). endif. n n n ABAP 楊子青 4
報表程式 3:ZPU 105_301_PROG 3 (續) n n n n at LINE-SELECTION. * write: / sy-lsind, wa-artid, wa-artname. if sy-lsind = 1. set TITLEBAR 'T 03' with wa-artname '推出節目'. DATA wa 2 TYPE zpu 105_301_show. SELECT * from zpu 105_301_show into wa 2 where team = wa-artid. n write: / wa 2 -showname, wa 2 -showyear. hide: wa 2 -showname. n ENDSELECT. n n if sy-subrc <> 0. write: / '目前這個劇團沒有演出節目'. endif. n ENDIF. n n ABAP 楊子青 5
報表程式 3:ZPU 105_301_PROG 3 (續) n n if sy-lsind = 2. set TITLEBAR 'T 03' with wa 2 -showname '各場次觀眾人數'. n DATA wa 3 TYPE zpu 105_301_look. SELECT * from zpu 105_301_look into wa 3 where showname = wa 2 -showname. n write: / wa 3 -lookdate, wa 3 -lookpeople. n ENDSELECT. n n if sy-subrc <> 0. write: / '查無資料'. endif. n ENDIF. n n ABAP 楊子青 6
1. 主程式 n n DATA OK_CODE LIKE SY-UCOMM. TABLES: ZPU 105_301_ART, ZPU 105_301_SHOW. DATA: TEAMTO TYPE ZPU 105_301_SHOW-TEAM. CALL SCREEN 9000. ABAP 楊子青 7
SCREEN 9000 PROG 1 PROG 2 PROG 3 JUMP 9100 BYE ABAP 楊子青 8
SCREEN 9000 (續) MODULE USER_COMMAND_9000 INPUT. CASE OK_CODE. WHEN 'PROG 1'. SUBMIT ZPU 105_301_PROG 1 AND RETURN. WHEN 'PROG 2'. SUBMIT ZPU 105_301_PROG 2 VIA SELECTION-SCREEN AND RETURN. WHEN 'PROG 3'. SUBMIT ZPU 105_301_PROG 3 VIA SELECTION-SCREEN AND RETURN. WHEN 'JUMP 9100'. CALL SCREEN 9100. WHEN 'BYE'. LEAVE PROGRAM. ENDCASE. ENDMODULE. 執行,呼叫程式 1, 2, 3看看 ABAP 楊子青 9
SCREEN 9100 ZPU 105_301_SHOW-TEAMTO PROG 2 COND PROG 3 COND BACKMAIN QUERY TEAMTO ABAP 楊子青 10
SCREEN 9100 (續) MODULE USER_COMMAND_9100 INPUT. CASE OK_CODE. WHEN 'PROG 2 COND'. SUBMIT ZPU 105_301_PROG 2 WITH ANO = ZPU 105_301_SHOW-TEAM AND RETURN. WHEN 'BACKMAIN'. CALL SCREEN 9000. WHEN 'PROG 3 COND'. DATA WA TYPE rsparams. WA-SELNAME = 'A'. WA-SIGN = 'I'. WA-OPTION = 'BT'. WA-LOW = ZPU 105_301_SHOW-TEAM. WA-HIGH = TEAMTO. DATA ITAB TYPE STANDARD TABLE OF rsparams. APPEND WA TO ITAB. SUBMIT ZPU 105_301_PROG 3 WITH SELECTION-TABLE ITAB AND RETURN. CLEAR ITAB. WHEN 'QUERY'. SELECT SINGLE * FROM ZPU 105_301_ART WHERE ARTID = ZPU 105_301_SHOW-TEAM. ENDCASE. ENDMODULE. 執行看看 ABAP 楊子青 11
SCREEN 9100 (續): 用Table. Control 顯示多筆資料 ABAP 楊子青 12
SCREEN 9100 (續): 用Table. Control 顯示多筆資料 ABAP 楊子青 13
SCREEN 9100 (續): 用Table. Control 顯示多筆資料 註解掉,否則 只有執行一次 MODULE SHOW_INIT OUTPUT. * IF G_SHOW_COPIED IS INITIAL. *&SPWIZARD: COPY DDIC-TABLE 'ZPU 105_301_SHOW' *&SPWIZARD: INTO INTERNAL TABLE 'g_SHOW_itab' SELECT * FROM ZPU 105_301_SHOW INTO CORRESPONDING FIELDS OF TABLE G_SHOW_ITAB WHERE TEAM = ZPU 105_301_SHOW-TEAM. G_SHOW_COPIED = 'X'. REFRESH CONTROL 'SHOW' FROM SCREEN '9100'. * ENDIF. ENDMODULE. ABAP 楊子青 14
2. PROCESS BEFORE OUTPUT 設定GUI Title 執行 ABAP 楊子青 16
3. PROCESS BEFORE OUTPUT 設定GUI Status (快速鍵) 設定 Function Keys (快速鍵) Fct. Code 執行 描述 ABAP 楊子青 17
4. PROCESS BEFORE OUTPUT 設定GUI Status (標準 具列) 執行 ABAP 楊子青 18
5. PROCESS BEFORE OUTPUT 設定GUI Status (應用程式 具列) 展開 按F 4 ABAP 楊子青 19
PROCESS BEFORE OUTPUT 設定GUI Status (應用程式 具列) 執行 ABAP 楊子青 20
PROCESS BEFORE OUTPUT 設定GUI Status (應用程式 具列圖示) 執行 ABAP 楊子青 21
6. PROCESS BEFORE OUTPUT 設定GUI Status (功能表) double click 執行結果 可以按F 4選擇 ABAP 楊子青 22
Disable部份Menu Bar: 以Screen 9100為例 MODULE STATUS_9100 OUTPUT. DATA FCode TYPE TABLE OF SY-UCOMM. APPEND 'PROG 2' TO FCode. APPEND 'PROG 3' TO FCode. SET PF-STATUS 'STATUS 1' EXCLUDING FCODE. * SET TITLEBAR 'xxx'. ENDMODULE. ABAP 楊子青 23
- Slides: 24