SAP/GUI

[SAP] ABAP GUI ๊ตฌ์„ฑ ์š”์†Œ ํ™œ์šฉ - ์•„์ด์ฝ˜, Group Box, Drop Down, Push Button, ์ž…๋ ฅ ๊ฒ€์ฆ ๋ฐ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ

์ธํฌ๋งˆํ‹ฑ 2025. 3. 18. 16:11

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

์„ ํƒํ–ˆ๋˜ ๊ฐ’์„ ํ”„๋กœ๊ทธ๋žจ์„ ์žฌ์‹คํ–‰ํ•  ๋•Œ ๋‹ค์‹œ ๋„์šฐ๋„๋ก ์„ค์ •ํ•  ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

  1. Set parameter
  2. Get parameter

Set , Get ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์—ฌ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

โœ”๏ธ SET, GET Parameter ์„ค์ •

 

 

 

4. ์ž…๋ ฅ๊ฐ’ ์ฒดํฌ ๋ฐ Dialog Message

 

โญ SAP์—์„œ๋Š” 4๊ฐ€์ง€ ์ž๋™ ์ž…๋ ฅ ๊ฒ€์ฆ ๊ธฐ๋Šฅ์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ํ•ญ์ƒ 4๊ฐ€์ง€๋ฅผ ๋ชจ๋‘ ์ž๋™์œผ๋กœ ๊ฒ€์ •ํ•œ ํ›„, PAI๊ฐ€ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. 

  1. Mandatory fields check
  2. Field format check
  3. Fixed values
  4. 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๊ฐ€์ง€ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

  1. Function ํƒ€์ž…์„ E๋กœ ๋งŒ๋“ ๋‹ค.
  2. 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'๋กœ ์„ค์ •ํ•˜์—ฌ ํ•„์ˆ˜ ํ•„๋“œ ์˜ค๋ฅ˜๋ฅผ ์šฐํšŒํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.