๊ด€๋ฆฌ ๋ฉ”๋‰ด

CS Student’s Tech Journey๐Ÿ’ซ

[SAP] ABAP Subscreen (5) Tabstrip Control๋กœ ํ™”๋ฉด ์ „ํ™˜ ๊ตฌํ˜„ํ•˜๊ธฐ ๋ณธ๋ฌธ

SAP/์„œ๋ธŒ์Šคํฌ๋ฆฐ Subscreen

[SAP] ABAP Subscreen (5) Tabstrip Control๋กœ ํ™”๋ฉด ์ „ํ™˜ ๊ตฌํ˜„ํ•˜๊ธฐ

์ธํฌ๋งˆํ‹ฑ 2025. 3. 21. 20:33

SAP ๋‹ค์ด์–ผ๋กœ๊ทธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ํ•˜๋‚˜์˜ ํ™”๋ฉด์—์„œ ์—ฌ๋Ÿฌ UI ๊ตฌ์„ฑ์š”์†Œ๋ฅผ ๋ณด์—ฌ์ฃผ๊ธฐ ์œ„ํ•ด Subscreen์„ ํ™œ์šฉํ•˜๋Š” ๊ฒƒ์€ ๋งค์šฐ ์ผ๋ฐ˜์ ์ธ ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.


ํŠนํžˆ ์‚ฌ์šฉ์ž๊ฐ€ ํƒญ(Tab)์„ ๋ˆŒ๋Ÿฌ์„œ ํ™”๋ฉด์„ ์ „ํ™˜ํ•˜๋Š” ๋ฐฉ์‹, ์ฆ‰ Tabstrip Control์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ, ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ํ•˜๋‚˜์˜ ๋…ผ๋ฆฌ์  ํ™”๋ฉด ์•ˆ์—์„œ ๊น”๋”ํ•˜๊ฒŒ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์–ด UI ๊ตฌ์„ฑ์— ์ž์ฃผ ํ™œ์šฉ๋ฉ๋‹ˆ๋‹ค.

์ด๋ฒˆ ๊ธ€์—์„œ๋Š” SAP์—์„œ ์ œ๊ณตํ•˜๋Š” Tabstrip Control์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ• ๋‘ ๊ฐ€์ง€๋ฅผ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค.

 


 

โ“ Tabstrip Control์ด๋ž€?

Tabstrip์€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ Subscreen์„ ํ•˜๋‚˜์˜ ์˜์—ญ์—์„œ ์ „ํ™˜ํ•ด๊ฐ€๋ฉฐ ๋ณด์—ฌ์ฃผ๋Š” ์ปจํŠธ๋กค ์š”์†Œ์ž…๋‹ˆ๋‹ค.
ํ•˜๋‚˜์˜ ๋ฉ”์ธ ์Šคํฌ๋ฆฐ ๋‚ด์—์„œ ์‚ฌ์šฉ์ž๊ฐ€ ์„ ํƒํ•œ ํƒญ์— ๋”ฐ๋ผ ๋‹ค๋ฅธ Subscreen์„ ๋ถˆ๋Ÿฌ์™€์„œ ํ™”๋ฉด์„ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

 

Tabstrip ์˜ˆ์‹œ ์ด๋ฏธ์ง€

 

  • Current Tab: ํ˜„์žฌ ์„ ํƒ๋œ ํƒญ ์ด๋ฆ„
  • Pushbutton Tabs: ๊ฐ ํƒญ ๋ฒ„ํŠผ
  • Subscreen Area: ํƒญ์ด ์ „ํ™˜๋˜๋ฉด ์ด ์˜์—ญ์˜ ๋‚ด์šฉ์ด ๋ฐ”๋€œ

 

 

๐Ÿ“Œ Tabstrip ๊ตฌํ˜„ ๋ฐฉ์‹ ๋‘ ๊ฐ€์ง€

๋ฐฉ์‹ ์„ค๋ช… ํŠน์ง•
CASE 1 Fct Type์„ P๋กœ ์„ค์ • ๊ตฌํ˜„์ด ๊ฐ„๋‹จํ•˜์ง€๋งŒ PAI๋ฅผ ํƒ€์ง€ ์•Š์Œ
CASE 2 ์ผ๋ฐ˜ Normal ๋ฐฉ์‹ ์‹ค๋ฌด์—์„œ ๋” ๋งŽ์ด ์‚ฌ์šฉ๋จ, OK_CODE๋กœ ์ œ์–ด

 

 


๐ŸŽฏ CASE 1 – Tabstrip (Fct Type = P ๋ฐฉ์‹)

โœ… ์žฅ์ 

  • ๊ตฌํ˜„์ด ๊ฐ„๋‹จํ•˜๊ณ  ์ง๊ด€์ ์ž„
  • ๋ฒ„ํŠผ ํด๋ฆญ ์‹œ PAI๋ฅผ ํƒ€์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ฝ”๋“œ ๊ตฌ์กฐ๊ฐ€ ๊ฐ„๋‹จํ•จ

โš ๏ธ ๋‹จ์ 

  • ๊ฐ Subscreen์„ CALL SUBSCREEN์œผ๋กœ ๋ชจ๋‘ ํ˜ธ์ถœํ•ด์•ผ ํ•จ
  • ํ™”๋ฉด ํด๋ฆญ ์‹œ ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ ๋กœ๋”ฉ์ด ํ•„์š”ํ•˜๋‹ค๋ฉด PAI๋ฅผ ํƒ€์•ผ ํ•˜๋ฏ€๋กœ ์œ ์—ฐ์„ฑ์ด ๋–จ์–ด์ง

 

โ–ถ ๋ณ€์ˆ˜ ์„ ์–ธ (XXXXXTOP)

* Tab Strips ๋ณ€์ˆ˜ ์„ ์–ธ
CONTROLS MY_TAB TYPE TABSTRIP.

 

โ–ถ Tabstrip Layout ์„ค์ • (๋ฉ”์ธ ํ™”๋ฉด Screen 100)

 

โ–ถ Tab ์†์„ฑ ์„ค์ • - TAB ์ด๋ฆ„์€ ๋ณ€์ˆ˜ ์„ ์–ธํ•  ๋•Œ ์‚ฌ์šฉํ–ˆ๋˜ ์ด๋ฆ„์œผ๋กœ ์„ค์ •

 

โ–ถ Tab ์†์„ฑ ์„ค์ • - TAB1 Connection ๋ฒ„ํŠผ (Subscreen Area - SUB1)

Fct Code ํƒญ ํด๋ฆญ ์‹œ ๋ฐœ์ƒํ•˜๋Š” ์ฝ”๋“œ
Fct Type P ๋กœ ์„ค์ •
Ref Field Subscreen Area์™€ ์—ฐ๊ฒฐ

 

โœ”๏ธ Subscreen Area๋ฅผ ์•ˆ์— ๊ทธ๋ ค์ค๋‹ˆ๋‹ค.

 

โ–ถ Tab ์†์„ฑ ์„ค์ • - TAB2 Airline ๋ฒ„ํŠผ (Subscreen Area - SUB2)

 

โœ”๏ธ Subscreen Area๋ฅผ ์•ˆ์— ๊ทธ๋ ค์ค๋‹ˆ๋‹ค.

 

โ–ถ Subscreen ์—ฐ๊ฒฐ

PROCESS BEFORE OUTPUT.
  MODULE status_0100.
  CALL SUBSCREEN SUB1 INCLUDING SY-CPROG '0101'.
  CALL SUBSCREEN SUB2 INCLUDING SY-CPROG '0102'.
  
PROCESS AFTER INPUT.
  CALL SUBSCREEN SUB1.
  CALL SUBSCREEN SUB2.
  MODULE user_command_0100.

 

โ–ถ ์ตœ์ข… ํ™•์ธ

ํƒญ์ด ์ƒ์„ฑ๋œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋งŒ, ์•„์ง ๋ฐ์ดํ„ฐ ์กฐํšŒ๋Š” ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

 


๐ŸŽฏ CASE 2 – Tabstrip (Normal ๋ฐฉ์‹)

 

โœ… ํŠน์ง•

  • ๊ฐ ํƒญ์„ ๋ˆ„๋ฅด๋ฉด PAI → PBO๋ฅผ ํƒ€๋ฉด์„œ ํ™”๋ฉด์ด ์ „ํ™˜๋จ
  • Subscreen ํ•˜๋‚˜๋งŒ ๊ณต์œ ํ•˜๊ณ , ํƒญ์— ๋”ฐ๋ผ ํ•ด๋‹น ํ™”๋ฉด๋งŒ ๊ต์ฒด
  • ์‹ค๋ฌด์—์„œ ๋” ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹

 

โ–ถ Tab ์†์„ฑ ์„ค์ • - TAB ์ด๋ฆ„์€ ๋ณ€์ˆ˜ ์„ ์–ธํ•  ๋•Œ ์‚ฌ์šฉํ–ˆ๋˜ ์ด๋ฆ„์œผ๋กœ ์„ค์ •

 

โ–ถ Tab ์†์„ฑ ์„ค์ • - TAB1 Connection ๋ฒ„ํŠผ (Subscreen Area - SUB1)

 

โ–ถ Tab ์†์„ฑ ์„ค์ • - TAB2 Airline ๋ฒ„ํŠผ (Subscreen Area - SUB1)

๐Ÿ“Œ TAB1๊ณผ ๊ฐ™์€ Subscreen Area๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

 

โ–ถ ๋ณ€์ˆ˜ ์„ ์–ธ (XXXXXTOP)

* Tab Strips ๋ณ€์ˆ˜ ์„ ์–ธ
DATA GV_DYNNR TYPE SY-DYNNR.

 

โ–ถSubscreen ์„ค์ • ๋กœ์ง (XXXXXO01) PBO โœ”๏ธ ACTIVETAB ์„ ํƒ ์‹œ, ์–ด๋–ค ํ™”๋ฉด์„ ๋„์›Œ์ค„์ง€์— ๋Œ€ํ•œ ๋กœ์ง

PROCESS BEFORE OUTPUT.
  MODULE status_0100.
  MODULE FILL_DYNNR.
MODULE fill_dynnr OUTPUT.
  CASE MY_TAB-ACTIVETAB.
    WHEN 'TAB1'.
      GV_DYNNR = '0101'.
    WHEN 'TAB2'.
      GV_DYNNR = '0102'.
    WHEN OTHERS.
      MY_TAB-ACTIVETAB = 'TAB2'. " ๋””ํดํŠธ ์„ค์ •
      GV_DYNNR = '0102'.
  ENDCASE.
ENDMODULE.

โœ… ํƒญ ํด๋ฆญ ์‹œ๋งˆ๋‹ค GV_DYNNR ๊ฐ’์ด ๋ฐ”๋€Œ๊ณ , ๊ทธ์— ๋”ฐ๋ผ Subscreen์ด ์ „ํ™˜๋จ

 

โ–ถ Subscreen ์„ค์ • ๋กœ์ง (XXXXXI01) PAI  โœ”๏ธ ์‚ฌ์šฉ์ž์˜ ํƒญ ์„ ํƒ ์ฒ˜๋ฆฌ

MODULE user_command_0100 INPUT.
  CASE ok_code.
  
    WHEN 'TAB1' OR 'TAB2'. " PAI ๋กœ์ง ์ถ”๊ฐ€
      MY_TAB-ACTIVETAB = ok_code.
      
    WHEN 'DISP'.
       PERFORM GET_INFO.
    WHEN 'BACK' OR 'EXIT'. "
      LEAVE PROGRAM.
  ENDCASE.


ENDMODULE.

 

โ–ถ  Subscreen ํ˜ธ์ถœ

PROCESS BEFORE OUTPUT.
  MODULE status_0100.
  MODULE FILL_DYNNR.
    CALL SUBSCREEN SUB1 INCLUDING SY-CPROG GV_DYNNR. " ์„ค์ •

 

โ–ถ ์ตœ์ข… ํ™•์ธ!