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

[SAP ABAP] AT SELECTION-SCREEN ON <ν•„λ“œ 이름> ꡬ문 μ΄λž€? (예제 포함)

by Jay Din 2024. 10. 25.
728x90
λ°˜μ‘ν˜•

AT SELECTION-SCREEN ON μ΄λž€?

AT SELECTION-SCREEN ON <ν•„λ“œ 이름>.

AT SELECTION-SCREEN ON ꡬ문은 SAP ABAPμ—μ„œ 선택 ν™”λ©΄(Selection Screen)의 νŠΉμ • ν•„λ“œμ— λŒ€ν•œ 이벀트 처리λ₯Ό μˆ˜ν–‰ν•  λ•Œ μ‚¬μš©λ©λ‹ˆλ‹€.

선택 ν™”λ©΄μ—μ„œ νŠΉμ • ν•„λ“œκ°€ μž…λ ₯λ˜μ—ˆμ„ λ•Œ λ˜λŠ” Enter ν‚€λ₯Ό λˆŒλ €μ„ λ•Œ μ΄λ²€νŠΈκ°€ λ°œμƒν•˜μ—¬ ν•΄λ‹Ή ν•„λ“œμ˜ μž…λ ₯값에 λŒ€ν•΄ κ²€μ¦ν•˜κ±°λ‚˜ μ²˜λ¦¬ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

 

AT SELECTION-SCREEN ON xmrwld

  1. 선택 ν™”λ©΄ ν•„λ“œμ˜ 값에 λŒ€ν•΄ μž…λ ₯ 검증을 μˆ˜ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  2. μ—¬λŸ¬ ν•„λ“œμ— λŒ€ν•΄ 각각의 검증 λ‘œμ§μ„ μ„€μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  3. 였λ₯˜κ°€ λ°œμƒν•˜λ©΄ μžλ™μœΌλ‘œ ν•΄λ‹Ή ν•„λ“œλ‘œ μ»€μ„œκ°€ μ΄λ™ν•˜λ©°, μž…λ ₯κ°’ μˆ˜μ •μ΄ μš”κ΅¬λ©λ‹ˆλ‹€.

 

예제 μ½”λ“œ

μ•„λž˜ μ˜ˆμ œμ—μ„œλŠ” νšŒμ‚¬ μ½”λ“œ(P_BUKRS)에 λŒ€ν•΄ μ‚¬μš©μžκ°€ μž…λ ₯ν•œ 값이 μœ νš¨ν•œμ§€ κ²€μ¦ν•˜κ³ , μ˜¬λ°”λ₯΄μ§€ μ•Šμ€ 경우 였λ₯˜ λ©”μ‹œμ§€λ₯Ό ν‘œμ‹œν•˜λŠ” 예제λ₯Ό λ³΄μ—¬μ€λ‹ˆλ‹€.

PARAMETERS: p_bukrs TYPE bukrs OBLIGATORY. " νšŒμ‚¬ μ½”λ“œ ν•„λ“œ (ν•„μˆ˜ μž…λ ₯)

" 선택 ν™”λ©΄μ—μ„œ P_BUKRS ν•„λ“œμ— λŒ€ν•œ μž…λ ₯κ°’ 검증
AT SELECTION-SCREEN ON p_bukrs.
  " νšŒμ‚¬ μ½”λ“œκ°€ '1000'이 μ•„λ‹Œ 경우 였λ₯˜ λ©”μ‹œμ§€ ν‘œμ‹œ
  IF p_bukrs <> '1000'.
    MESSAGE 'Only company code 1000 is allowed!' TYPE 'E'.
  ENDIF.

START-OF-SELECTION.
  " 선택 ν™”λ©΄ μž…λ ₯이 μ˜¬λ°”λ₯Έ 경우 좜λ ₯
  WRITE: / 'Company Code:', p_bukrs.
    • PARAMETERS: p_bukrs TYPE bukrs OBLIGATORY.
      • νšŒμ‚¬ μ½”λ“œ(P_BUKRS) λ₯Ό μž…λ ₯λ°›κΈ° μœ„ν•΄ PARAMETERS ꡬ문을 μ‚¬μš©ν•˜μ—¬ ν•„λ“œλ₯Ό μ •μ˜ν•©λ‹ˆλ‹€.
      • OBLIGATORY μ˜΅μ…˜μ„ μ‚¬μš©ν•΄ ν•„μˆ˜ μž…λ ₯ ν•„λ“œλ₯Ό μ„€μ •ν•©λ‹ˆλ‹€. 즉, μ‚¬μš©μžκ°€ 값을 μž…λ ₯ν•˜μ§€ μ•ŠμœΌλ©΄ ν”„λ‘œκ·Έλž¨μ΄ μ‹€ν–‰λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
  • AT SELECTION-SCREEN ON P_BUKRS.
    • νšŒμ‚¬ μ½”λ“œ(P_BUKRS) ν•„λ“œμ— λŒ€ν•œ μž…λ ₯값이 λ³€κ²½λ˜κ±°λ‚˜ Enter ν‚€κ°€ λˆŒλ Έμ„ λ•Œ μ‹€ν–‰λ©λ‹ˆλ‹€.
    • 이 ꡬ문을 톡해 νŠΉμ • ν•„λ“œμ˜ μž…λ ₯값을 검증할 수 μžˆμŠ΅λ‹ˆλ‹€.
  • 검증 둜직( IF p_bukrs <> '1000')
    • μž…λ ₯된 νšŒμ‚¬ μ½”λ“œκ°€ '1000'이 μ•„λ‹Œ 경우 였λ₯˜ λ©”μ‹œμ§€ "Only company code 1000 is allowed!"λ₯Ό ν‘œμ‹œν•©λ‹ˆλ‹€.
    • TYPE 'E' λŠ” μ—λŸ¬ λ©”μ‹œμ§€λ₯Ό μ˜λ―Έν•˜λ©°, ν”„λ‘œκ·Έλž¨μ˜ 싀행을 μ€‘λ‹¨μ‹œν‚΅λ‹ˆλ‹€. 이 λ©”μ‹œμ§€λ₯Ό μ²˜λ¦¬ν•œ ν›„, μ»€μ„œκ°€ P_BUKRS ν•„λ“œλ‘œ μ΄λ™ν•©λ‹ˆλ‹€.
  • START-OF-SELECTION 이벀트
    • 선택 ν™”λ©΄μ—μ„œ μž…λ ₯κ°’ 검증이 λͺ¨λ‘ ν†΅κ³Όλœ κ²½μš°μ— μ‹€ν–‰λ©λ‹ˆλ‹€.
    • μž…λ ₯된 νšŒμ‚¬ μ½”λ“œ 값을 화면에 좜λ ₯ν•©λ‹ˆλ‹€.

 

μ‹€ν–‰ κ²°κ³Ό

1. νšŒμ‚¬μ½”λ“œ ν•„λ“œμ— 1000을 μž…λ ₯ν•  경우

ν”„λ‘œκ·Έλž¨μ΄ μ •μƒμ μœΌλ‘œ μ‹€ν–‰λ˜κ³ , Company Code: 1000 이 좜λ ₯λ©λ‹ˆλ‹€.

 

2. λ‹€λ₯Έ 값을 μž…λ ₯ν•˜κ³  Enter ν‚€λ₯Ό λˆ„λ₯Ό 경우

Only company code 1000 is allowed!" λΌλŠ” 였λ₯˜ λ©”μ‹œμ§€κ°€ ν‘œμ‹œλ˜λ©°, ν”„λ‘œκ·Έλž¨ 싀행이 μ€‘λ‹¨λ©λ‹ˆλ‹€.

 

3. AT SELECTION-SCREEN ON p_bukrs. 을 주석 μ²˜λ¦¬ν•  경우

μž…λ ₯κ°’ 검증을 ν•˜μ§€ μ•ŠκΈ° λ•Œλ¬Έμ— 1000이 μ•„λ‹Œ λ‹€λ₯Έ 숫자λ₯Ό μž…λ ₯해도 였λ₯˜ λ©”μ‹œμ§€κ°€ λ°œμƒν•˜μ§€ μ•ŠμœΌλ©°, ν”„λ‘œκ·Έλž¨μ€ κ·ΈλŒ€λ‘œ μ‹€ν–‰λ©λ‹ˆλ‹€.

9λ₯Ό μž…λ ₯ν•˜κ³  μ‹€ν–‰ν•˜λ©΄ λ‹€μŒ νŽ˜μ΄μ§€μ—μ„œ 였λ₯˜ λ©”μ‹œμ§€λ₯Ό λ°œμƒμ‹œν‚΅λ‹ˆλ‹€.

즉, μž…λ ₯ λ‹Ήμ‹œ κ°’ 검증을 ν•˜μ§€ μ•ŠκΈ° λ•Œλ¬Έμ— μž…λ ₯칸에 μž…λ ₯ μžμ²΄λŠ” κ°€λŠ₯ν•΄μ§‘λ‹ˆλ‹€.

PARAMETERS: p_bukrs TYPE bukrs OBLIGATORY. " νšŒμ‚¬ μ½”λ“œ ν•„λ“œ (ν•„μˆ˜ μž…λ ₯)

" 선택 ν™”λ©΄μ—μ„œ P_BUKRS ν•„λ“œμ— λŒ€ν•œ μž…λ ₯κ°’ 검증
*AT SELECTION-SCREEN ON p_bukrs.
  " νšŒμ‚¬ μ½”λ“œκ°€ '1000'이 μ•„λ‹Œ 경우 였λ₯˜ λ©”μ‹œμ§€ ν‘œμ‹œ
  IF p_bukrs <> '1000'.
    MESSAGE 'Only company code 1000 is allowed!' TYPE 'E'.
  ENDIF.

START-OF-SELECTION.
  " 선택 ν™”λ©΄ μž…λ ₯이 μ˜¬λ°”λ₯Έ 경우 좜λ ₯
  WRITE: / 'Company Code:', p_bukrs.

μž…λ ₯ κ°€λŠ₯
μž…λ ₯ ν›„ μ‹€ν–‰ λˆ„λ₯΄λ©΄ μ—λŸ¬ 메세지 λ°œμƒ

 

728x90
λ°˜μ‘ν˜•