[SAP] ABAP GUI ๊ตฌ์ฑ ์์ ํ์ฉ - ์์ด์ฝ, Group Box, Drop Down, Push Button, ์ ๋ ฅ ๊ฒ์ฆ ๋ฐ ์ค๋ฅ ์ฒ๋ฆฌ
SAP GUI์์ ์ฌ์ฉ์ ๊ฒฝํ์ ํฅ์์ํค๊ธฐ ์ํด ์์ด์ฝ(Status Icon) ํ์ฉ, Group Box ๊ตฌ์ฑ, ์ ๋ ฅ ๊ฒ์ฆ ๋ฐ ์ค๋ฅ ์ฒ๋ฆฌ ๋ฐฉ๋ฒ์ ์ ๋ฆฌํด๋ณด๊ฒ ์ต๋๋ค. ์ด ๊ธ์์๋ GUI Status Bar, Title Bar, Function Key ๋ฐ ๋ฒํผ ์ด๋ฒคํธ ์ฒ๋ฆฌ, ์์ด์ฝ ํ์ฉ, ์ ๋ ฅ ํ๋ ๊ฒ์ฆ, Dialog Message ์ฒ๋ฆฌ ๋ฐฉ๋ฒ๊น์ง ๋ค๋ฃน๋๋ค.
๐ํ๋
์ด๋ฒ ํฌ์คํ ์ ์์ ๋ ์๋ ํฌ์คํ ๋ค๊ณผ ์ด์ด์ง๋๋ค. โฌ๏ธ
1๏ธโฃ ABAP ํ๋ฉด ๋์ ์ ์ด - MODIFY SCREEN ํ์ฉํ๊ธฐ
2๏ธโฃ ABAP ํ๋ฉด ์ ํ - Next Screen๊ณผ SET SCREEN ๋ฐฉ์์ ์ฐจ์ด
3๏ธโฃ ABAP ํ์ ์ฐฝ๊ณผ ์ปค์ ์ค์ - CALL SCREEN๊ณผ SET CURSOR ํ์ฉํ๊ธฐ
4๏ธโฃ ABAP GUI Status Bar์ Title Bar ์ค์ ํ๊ธฐ / OK_CODE ๋ก์ง
1. SAP User Interface ๊ฐ์
SAP GUI๋ ์ฌ์ฉ์์ ์ธํฐํ์ด์ค(UI)๋ฅผ ๊ตฌ์ฑํ๋ ๋ค์ํ ์์๋ค๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค. ์ฃผ์ ๊ตฌ์ฑ ์์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
โ GUI Status Bar
GUI Status Bar๋ ํ๋ฉด ํ๋จ์ ์์นํ๋ฉฐ, ์์คํ ๋ฉ์์ง์ ์ํ ์ ๋ณด๋ฅผ ํ์ํฉ๋๋ค. ์ฌ์ฉ์๊ฐ ํน์ ์์ ์ ์ํํ ๋ ํผ๋๋ฐฑ์ ์ ๊ณตํ๋ ์ญํ ์ ํฉ๋๋ค.
โ Menu Bar
๋ฉ๋ด ๋ฐ(Menu Bar)๋ SAP ํ๋ฉด์ ์๋จ์ ์์นํ๋ฉฐ, ์ฌ์ฉ์๊ฐ ์ํํ ์ ์๋ ๊ธฐ๋ฅ๋ค์ ๋ฉ๋ด ํํ๋ก ์ ๊ณตํฉ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก "System"๊ณผ "Help" ๋ฉ๋ด๊ฐ ํฌํจ๋์ด ์์ผ๋ฉฐ, ์ถ๊ฐ์ ์ธ ๋ฉ๋ด ํญ๋ชฉ์ ์ ์ํ ์ ์์ต๋๋ค.
โ Application Toolbar
Application Toolbar๋ ํ๋ฉด ์๋จ ๋๋ ๋ฒํผ ์์ญ์ ์์นํ๋ฉฐ, ์ฃผ์ ๊ธฐ๋ฅ์ ๋จ์ถ ๋ฒํผ์ผ๋ก ์ ๊ณตํฉ๋๋ค. ์ฌ์ฉ์๋ ๋ฒํผ์ ํด๋ฆญํ์ฌ ๋น ๋ฅด๊ฒ ํน์ ๊ธฐ๋ฅ์ ์คํํ ์ ์์ต๋๋ค.
โ Function Keys
Function Keys๋ ํน์ ํค ์ ๋ ฅ(F1~F12 ๋ฑ)์ ๋ฐ๋ผ ์คํ๋๋ ๊ธฐ๋ฅ์ ์ ์ํ ์ ์๋๋ก ํฉ๋๋ค. ์ด๋ฅผ ํ์ฉํ๋ฉด ์ฌ์ฉ์ ํธ์์ฑ์ ๋์ด๊ณ , ๋จ์ถํค๋ฅผ ์ด์ฉํ ๋น ๋ฅธ ์์ ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅํฉ๋๋ค.
2. ์์ด์ฝ ์ค์ - Status Icon ํ์ฉ
SAP GUI์์๋ ํน์ ์ ๋ณด๋ฅผ ์ง๊ด์ ์ผ๋ก ํํํ๊ธฐ ์ํด Status Icon์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ๊ตญ์ ์ ๊ณผ ๊ตญ๋ด์ ์ ๊ตฌ๋ถํ๋ ์์ด์ฝ์ ์ถ๊ฐํ ์ ์์ต๋๋ค.
๋ฌธ๋ฒ (XXXXXTOP)
DATA: iconfield1 TYPE icons-text.
โ ์์ด์ฝ์ ์ํ ๋ณ์ ์ค์
XXXXXTOP
DATA GV_INT TYPE icons-text.
๐ GV_INT ๋ณ์๋ ์์ด์ฝ ๊ฐ์ ์ ์ฅํ๋ ๋ณ์๋ก ์ฌ์ฉ๋ฉ๋๋ค.
์์ด์ฝ์ Status Icon์ผ๋ก ์ค์
โ ๋ชจ๋ ์์ด์ฝ ๊ด๋ จ ๋ณ์๋ GV_INT๋ก ํต์ผ
Screen 200
PROCESS BEFORE OUTPUT.
MODULE STATUS_0200.
MODULE MODIFY_SCREEN.
MODULE SET_ICON. "๊ตญ์ ์ /๊ตญ๋ด์ ์์ด์ฝ
PROCESS AFTER INPUT.
MODULE USER_COMMAND_0200.
ํจ์ ICON_CREATE ์ฌ์ฉ์ ์ํด Pattern ์ฌ์ฉ
โ๏ธ Patten ์ ํ
โ๏ธ ์์ด์ฝ ์ฌ์ฉ์ ์ํ ํจ์ ICON_CREATE ์ ๋ ฅ
XXXXXO01(PBO)
MODULE set_icon OUTPUT.
" ๊ตญ์ ์ ์ธ ๊ฒฝ์ฐ ICON_CHECKED ์ฌ์ฉ
" ๊ตญ๋ด์ ์ธ ๊ฒฝ์ฐ ICON_DUMMY ์ฌ์ฉ
" ์์ด์ฝ T CODE : ICON
IF SDYN_CONN-countryfr = SDYN_CONN-countryto.
CALL FUNCTION 'ICON_CREATE'
EXPORTING
name = 'ICON_DUMMY'
IMPORTING
RESULT = GV_INT
EXCEPTIONS
ICON_NOT_FOUND = 1
OUTPUTFIELD_TOO_SHORT = 2
OTHERS = 3.
ELSE.
CALL FUNCTION 'ICON_CREATE'
EXPORTING
name = 'ICON_CHECKED'
IMPORTING
RESULT = GV_INT
EXCEPTIONS
ICON_NOT_FOUND = 1
OUTPUTFIELD_TOO_SHORT = 2
OTHERS = 3.
ENDIF.
ENDMODULE.
โ๏ธ ์์ด์ฝ ๋ก์ง ์ค์
3. ๋ค์ํ GUI ์ค์ ํ์ฉํ๊ธฐ
โ Group Box
200๋ฒ ํ๋ฉด์์ 100๋ฒ ํ๋ฉด์์ ์ ๋ ฅํ ๋ฐ์ดํฐ๋ฅผ ํ์ํ๊ณ , ๊ฒ์ ๊ธฐ๋ฅ, ๋๋กญ๋ค์ด ๋ชฉ๋ก ๋ฑ์ ์ ๊ณตํ ์ ์๋๋ก Group Box๋ฅผ ์ค์ ํ ์ ์์ต๋๋ค.
Screen 200
โ๏ธ 100๋ฒ ํ๋ฉด์์ ์ ๋ ฅํ ํ๋ ์ค 200๋ฒ ํ๋ฉด์ ํ์ํ๊ณ ์ถ์ ํ๋ ์ ํ
โ๏ธ 200๋ฒ ํ๋ฉด์์ 100๋ฒ ํ๋ฉด์์ ์ ๋ ฅํ ๋ฐ์ดํฐ๋ฅผ ํ์ ํ์ธ
โ Box ๋ชจ์ ์ค์
โ๏ธ ์ข์ธก Box ์ ํ ํ ํ๋ ์์ ๋ฌถ์ด์ฃผ๊ธฐ
โ๏ธ Box๋ก ๋ฌถ์ธ ๊ฒ ํ์ธ
โ Input Check & Search Help ์ค์ ํ๊ธฐ
ํ๋์ ์คํธ๋ญ์ฒ๋ SDYN_CONN ํ์ฉํ์์ผ๋, SDYN_CONN ์คํธ๋ญ์ฒ๋ฅผ ํตํด Input Check์ Search Help๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
๐ ์คํธ๋ญ์ฒ๋ฅผ ํตํด Input Check ๋ฐ Search Help ์ ์ฉ ๊ฐ๋ฅํฉ๋๋ค.
โ Drop Down ์ค์ ํ๊ธฐ
โ๏ธ Layout - Dropdown - Listbox with key ์ ํ
โ Push Button ์ค์ ํ๊ธฐ
๋ฒํผ์ ๋๋ ์ ๋, ์กฐํ ๋ชจ๋/์์ ๋ชจ๋ ์ ํ ๊ธฐ๋ฅ์ ํ๋ ๋ฒํผ์ ์ค์ ํฉ๋๋ค.
XXXXXI01 (PAI)
MODULE user_command_0200 INPUT.
CASE OK_CODE.
WHEN 'SAVE'.
MESSAGE 'TO BE IMPLEMENTED ..' TYPE 'I'.
WHEN 'BACK'.
LEAVE TO SCREEN 100. "ํ๊ดดํ๊ณ ์์ผ๋๊น 0์ ์๋จ 100์ ์ข
๋ฃ
WHEN 'TOGG'.
"์กฐํ ๋ชจ๋/์์ ๋ชจ๋ ์๋ค๊ฐ๋ค..
CASE GV_MODE.
WHEN 'D'.
GV_MODE = 'U'.
WHEN 'U'.
GV_MODE = 'D'.
ENDCASE.
ENDCASE.
ENDMODULE.
โ๏ธ DISPLAY / CREATE ๋ฒํผ ์๋ ํ์ธ
โ Screen Error
์ ํํ๋ ๊ฐ์ ํ๋ก๊ทธ๋จ์ ์ฌ์คํํ ๋ ๋ค์ ๋์ฐ๋๋ก ์ค์ ํ ๋ ์ฌ์ฉํฉ๋๋ค.
- Set parameter
- Get parameter
Set , Get ๊ธฐ๋ฅ์ ์ฌ์ฉํ์ฌ ์ค์ ํฉ๋๋ค.
โ๏ธ SET, GET Parameter ์ค์
4. ์ ๋ ฅ๊ฐ ์ฒดํฌ ๋ฐ Dialog Message
โญ SAP์์๋ 4๊ฐ์ง ์๋ ์ ๋ ฅ ๊ฒ์ฆ ๊ธฐ๋ฅ์ด ์กด์ฌํฉ๋๋ค. ํญ์ 4๊ฐ์ง๋ฅผ ๋ชจ๋ ์๋์ผ๋ก ๊ฒ์ ํ ํ, PAI๊ฐ ์คํ๋ฉ๋๋ค.
- Mandatory fields check
- Field format check
- Fixed values
- Foreign key check
โ ํน์ ์ ๋ ฅ๊ฐ ์ ํ ์์ (ํญ๊ณต์ฌ ์ฝ๋ 'AA' & ํญ๊ณตํธ '0064' ์ ํ ์ ํ)
๋ฌธ๋ฒ
FIELD <์ฒดํฌํ ํ๋ฉด ์์> MODULE <์ฒดํฌ ๋ก์ง>.
Screen 100
PROCESS BEFORE OUTPUT.
MODULE status_0100.
MODULE set_cursor.
PROCESS AFTER INPUT.
MODULE user_command_0100.
FIELD SDYN_CONN-CARRID MODULE CHECK_CONNECTION. "์
๋ ฅ๊ฐ ์ฒดํฌ ์ ํ ์ํ๋ ํ๋
XXXXXI01 (PAI)
MODULE check_connection INPUT.
IF SDYN_CONN-CARRID = 'AA' AND SDYN_CONN-CONNID = '0064'.
"2๊ฐ์ ๊ฐ ์กฐํฉ์ผ๋ก ์กฐํ/์์ ๋ชจ๋๋ก 200๋ฒ ํ๋ฉด ๋ชป๊ฐ๊ฒ ํจ
" => MESSAGE E ์ฌ์ฉ
MESSAGE E003(ZTRAIN_07).
ENDIF.
ENDMODULE.
ZTRAIN_07
์ฃผ์ : AA / 064๋ฅผ ์ ํ์ ์๋ฌ ์ฒ๋ฆฌ๋ฅผ ํด์ค์ผ ํฉ๋๋ค.
PROCESS AFTER INPUT.
MODULE EXIT AT EXIT-COMMAND.
" Airline์ ์์ด๋ฆผ, flight number ์ด๋ฆผ
* FIELD SDYN_CONN-CARRID MODULE CHECK_CONNECTION.
" Airline ์ด๋ฆผ, flight number ์ด๋ฆผ -> ๊ทธ๋ฃนํ ์ฒ๋ฆฌ
CHAIN.
FIELD: SDYN_CONN-CARRID, SDYN_CONN-CONNID.
MODULE CHECK_CONNECTION.
ENDCHAIN.
MODULE USER_COMMAND_0100.
โ Chain-Endchain์ ์ฌ์ฉํ์ฌ ๊ทธ๋ฃนํ ์ฒ๋ฆฌ ๊ฐ๋ฅ
5. ํ๋ฉด ์ค๋ฅ ๋ฐฉ์ง - Mandatory Fields ์ฐํ ๋ฐฉ๋ฒ
ํ์ ์
๋ ฅ ํ๋ ์ค๋ฅ ๋ฐ์ ์ Back ๋ฒํผ์ ๋๋ฅผ ์ ์๋๋ก ์ค์ ํ๋ฉฐ, 2๊ฐ์ง ๋ฐฉ๋ฒ์ ์ฌ์ฉํฉ๋๋ค.
- Function ํ์ ์ E๋ก ๋ง๋ ๋ค.
- AT EXIT-COMMAND ๋ก์ง ์ค์ ํด์ค๋ค.
โ Function ํ์ E ์ค์
โ AT EXIT-COMMAND ๋ก์ง ์ค์
Screen 100
PROCESS AFTER INPUT.
MODULE user_command_0100.
XXXXXI01 (PAI)
MODULE exit INPUT.
CASE OK_CODE.
WHEN 'BACK' OR 'EXIT'.
LEAVE PROGRAM.
ENDCASE.
ENDMODULE.
Function Type์ 'E'๋ก ์ค์ ํ์ฌ ํ์ ํ๋ ์ค๋ฅ๋ฅผ ์ฐํํ ์๋ ์์ต๋๋ค.