λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
πŸ§‘‍πŸ’Ό SAP/ABAP

[SAP ABAP] Modal Dialog Screen Box λ§Œλ“œλŠ” 방법

by Jay Din 2024. 4. 15.
728x90
λ°˜μ‘ν˜•

Modal Dialog Screen Box λž€?

SAP ABAPμ—μ„œλŠ” λͺ¨λ‹¬ λ‹€μ΄μ–Όλ‘œκ·Έ μƒμž ν˜•μ‹μ˜ 화면을 λ§Œλ“€ 수 μžˆμŠ΅λ‹ˆλ‹€.

이λ₯Ό 톡해 νŠΉμ • μž‘μ—…μ„ μˆ˜ν–‰ν•  λ•Œ μ‚¬μš©μžμ—κ²Œ 정보λ₯Ό μ œκ³΅ν•˜κ±°λ‚˜ μž…λ ₯을 μš”μ²­ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

Modal Dialog Screen Box λŠ” 보톡 10번 λ‹¨μœ„λ‘œ μ§€μ •ν•©λ‹ˆλ‹€. ex) 110번, 150번 etc 

 

Modal Dialog Screen Box  λ§Œλ“œλŠ” 방법

1. Screens / create

Screen numberλŠ” 10번 λ‹¨μœ„λ‘œ μž…λ ₯ν•©λ‹ˆλ‹€.

 

  • Screen Type:
    • λͺ¨λ‹¬ λ‹€μ΄μ–Όλ‘œκ·Έ λ°•μŠ€λ₯Ό λ§Œλ“œλŠ” 것이기 λ•Œλ¬Έμ— `scree type : modal dialog box`둜 μ§€μ •ν•©λ‹ˆλ‹€.
  • Next Dynpro:
    • Other Attributes의 Next Dynpro 섀정은 슀크린 κ°„μ˜ 흐름(λ„€λΉ„κ²Œμ΄μ…˜)을 μ •μ˜ν•˜λŠ” 데 μ‚¬μš©λ©λ‹ˆλ‹€. Next DynproλŠ” ν˜„μž¬ μŠ€ν¬λ¦°μ—μ„œ μ’…λ£Œλ  λ•Œ λ‹€μŒμ— 호좜될 슀크린의 번호λ₯Ό μ§€μ •ν•©λ‹ˆλ‹€. Next Dynproκ°€ 0으둜 μ„€μ •λœ 경우, ν˜„μž¬ μŠ€ν¬λ¦°μ—μ„œ λ‹€μŒ 슀크린이 ν˜ΈμΆœλ˜μ§€ μ•ŠμŒμ„ μ˜λ―Έν•©λ‹ˆλ‹€. 즉, ν˜„μž¬ 슀크린이 μ’…λ£Œλ˜λ©΄ 이전 슀크린으둜 λŒμ•„κ°€κ±°λ‚˜ ν˜„μž¬ νŠΈλžœμž­μ…˜μ„ μ’…λ£Œν•  수 μžˆμŠ΅λ‹ˆλ‹€.

 

2. Screen / Layout

SAP ABAPμ—μ„œ μŠ€ν¬λ¦°μ„ λ§Œλ“œλŠ” κ³Όμ • 쀑 λ ˆμ΄μ•„μ›ƒ(Layout)은 μ‚¬μš©μžκ°€ μŠ€ν¬λ¦°μ—μ„œ μž…λ ₯ν•˜κ±°λ‚˜ μ‘°νšŒν•  수 μžˆλŠ” μš”μ†Œ(μ»΄ν¬λ„ŒνŠΈ)듀을 λ°°μΉ˜ν•˜κ³  κ΅¬μ„±ν•˜λŠ” λ‹¨κ³„μž…λ‹ˆλ‹€.

λ ˆμ΄μ•„μ›ƒμ„ 톡해 슀크린의 μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€(UI)λ₯Ό κ΅¬μ„±ν•˜κ³  μ‚¬μš©μž κ²½ν—˜μ„ ν–₯μƒμ‹œν‚¬ 수 μžˆμŠ΅λ‹ˆλ‹€.

 

3. μ½”λ“œ μž‘μ„±

Includes / 파일λͺ…+TOP에 λ ˆμ΄μ•„μ›ƒ ν…Œμ΄λΈ”μ— μΆ”κ°€ν•œ ν…Œμ΄λΈ”μ„ μ„ μ–Έν•©λ‹ˆλ‹€.

 

PBO에 λͺ¨λ‹¬ λ‹€μ΄μ–Όλ‘œκ·Έ λ°•μŠ€μ— 넣어쀄 값을 μ„€μ •ν•©λ‹ˆλ‹€.

*&---------------------------------------------------------------------*
*&      Module  GET_CARRIER  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE get_carrier OUTPUT.
  
  select SINGLE *
    from scarr
    where carrid = sdyn_conn-carrid.

  
ENDMODULE.

 

μ•„λž˜λŠ” user_command_0100 λͺ¨λ“ˆμ—μ„œ Pλ₯Ό μž…λ ₯ν•˜κ³  μ—”ν„°λ₯Ό λˆ„λ₯΄λ©΄ λ‹€μ΄μ–Όλ‘œκ·Έκ°€ 좜λ ₯λ˜λŠ” μ½”λ“œμž…λ‹ˆλ‹€.

*&---------------------------------------------------------------------*
*&  Include           MZSCREEN_SOL04I01
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_0100  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE user_command_0100 INPUT.

  " λ§¨λ§ˆμ§€λ§‰ μžλ¦¬μ— 'P'κ°€ λ“€μ–΄μ˜€λ©΄ λ‹€μ΄μ–Όλ‘œκ·Έ 좜λ ₯
  CASE command.
    WHEN 'X'.
*      go back.
      LEAVE TO SCREEN 0.
    WHEN 'P'.
      CALL SCREEN 150
      STARTING AT 5 3
  ENDCASE.

  " λ²„νŠΌ ν΄λ¦­μ‹œ gv_mode λ³€ν™”
  CASE ok_code.
    WHEN 'CHG'.
      IF gv_mode = 0.
        gv_mode = 1.
      ELSE.
        gv_mode = 0.
      ENDIF.
  ENDCASE.

ENDMODULE.

 

3. λͺ¨λ‹¬ λ‹€μ΄μ–Όλ‘œκ·Έ 좜λ ₯

pμž…λ ₯ν›„ μ—”ν„° κ²°κ³Ό

 

Modal Dialog μœ„μΉ˜μ™€ 크기 μ œμ–΄

` CALL SCREEN ` 은 SAP ABAPμ—μ„œ λ‹€λ₯Έ μŠ€ν¬λ¦°μ„ ν˜ΈμΆœν•  λ•Œ μ‚¬μš©ν•˜λŠ” λ¬Έμž₯μž…λ‹ˆλ‹€.

이 λ¬Έμž₯μ—λŠ” ` STARTING AT ` κ³Ό ` ENDING AT ` μ˜΅μ…˜μ„ μ‚¬μš©ν•˜μ—¬ 슀크린의 μœ„μΉ˜μ™€ 크기λ₯Ό μ œμ–΄ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

` STARTING AT ` κ³Ό ` ENDING AT ` 은 같이 μ‚¬μš© κ°€λŠ₯ν•©λ‹ˆλ‹€.

 

STARTING AT ` μ˜΅μ…˜

  • λͺ©μ : ν˜ΈμΆœλ˜λŠ” 슀크린의 μ‹œμž‘ μœ„μΉ˜(μ’Œμƒλ‹¨ λͺ¨μ„œλ¦¬)λ₯Ό μ§€μ •ν•©λ‹ˆλ‹€.
  • ꡬ문:
CALL SCREEN screen_number
STARTING AT x_position y_position
  • λ§€κ°œλ³€μˆ˜:
    • x_position: 슀크린의 μ’Œμƒλ‹¨ λͺ¨μ„œλ¦¬μ˜ μˆ˜ν‰ μœ„μΉ˜(ν”½μ…€ λ‹¨μœ„).
    • y_position: 슀크린의 μ’Œμƒλ‹¨ λͺ¨μ„œλ¦¬μ˜ 수직 μœ„μΉ˜(ν”½μ…€ λ‹¨μœ„).
  • μ˜ˆμ‹œ:
    • CALL SCREEN 100 STARTING AT 100 200.
    • μœ„ μ˜ˆμ‹œμ—μ„œλŠ” 100번 μŠ€ν¬λ¦°μ„ ν˜ΈμΆœν•˜λ©΄μ„œ 슀크린의 μ’Œμƒλ‹¨ λͺ¨μ„œλ¦¬κ°€ X μ’Œν‘œ 100, Y μ’Œν‘œ 200 μœ„μΉ˜μ— μ‹œμž‘λ˜λ„λ‘ μ§€μ •ν•©λ‹ˆλ‹€.

 

` ENDING AT ` μ˜΅μ…˜

  • λͺ©μ : ν˜ΈμΆœλ˜λŠ” 슀크린의 μ’…λ£Œ μœ„μΉ˜(μš°ν•˜λ‹¨ λͺ¨μ„œλ¦¬)λ₯Ό μ§€μ •ν•©λ‹ˆλ‹€.
  • ꡬ문:
CALL SCREEN screen_number
ENDING AT x_position y_position
  • λ§€κ°œλ³€μˆ˜:
    • x_position: 슀크린의 μš°ν•˜λ‹¨ λͺ¨μ„œλ¦¬μ˜ μˆ˜ν‰ μœ„μΉ˜(ν”½μ…€ λ‹¨μœ„).
    • y_position: 슀크린의 μš°ν•˜λ‹¨ λͺ¨μ„œλ¦¬μ˜ 수직 μœ„μΉ˜(ν”½μ…€ λ‹¨μœ„).
  • μ˜ˆμ‹œ:
    • CALL SCREEN 100 ENDING AT 500 400.
    • μœ„ μ˜ˆμ‹œμ—μ„œλŠ” 100번 μŠ€ν¬λ¦°μ„ ν˜ΈμΆœν•˜λ©΄μ„œ 슀크린의 μš°ν•˜λ‹¨ λͺ¨μ„œλ¦¬κ°€ X μ’Œν‘œ 500, Y μ’Œν‘œ 400 μœ„μΉ˜μ— μ’…λ£Œλ˜λ„λ‘ μ§€μ •ν•©λ‹ˆλ‹€.
728x90
λ°˜μ‘ν˜•