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

[SAP ABAP] ALV Toolbar λ²„νŠΌ λΉ„ν™œμ„±ν™” (EXCLUDE)

by Jay Din 2025. 7. 7.
728x90
λ°˜μ‘ν˜•

ALV Toolbar λ²„νŠΌ EXCLUDE κ°œλ…

SAP ALVλŠ” 기본적으둜 λ‹€μ–‘ν•œ νˆ΄λ°” λ²„νŠΌμ΄ ν™œμ„±ν™”λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.

ν•˜μ§€λ§Œ μ‹€μ œ μ—…λ¬΄μ—μ„œλŠ” ν•„μš” μ—†λŠ” λ²„νŠΌμ„ μˆ¨κΈ°λŠ” 것이 더 κΉ”λ”ν•˜κ³ , μ‚¬μš©μž μ‹€μˆ˜λ₯Ό λ°©μ§€ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

이럴 λ•Œ μ‚¬μš©ν•˜λŠ” 게 λ°”λ‘œ Toolbar λ²„νŠΌ EXCLUDE κΈ°λŠ₯μž…λ‹ˆλ‹€.

 

πŸ“Œ μ–Έμ œ μ‚¬μš©ν•˜λ‚˜?

  • λΆˆν•„μš”ν•œ λ²„νŠΌμ„ 숨기고 싢을 λ•Œ
  • 데이터 μž…λ ₯/μˆ˜μ •μ΄ κΈˆμ§€λœ 화면을 ꡬ성할 λ•Œ
  • λ²„νŠΌ 클릭으둜 업무 였λ₯˜κ°€ λ°œμƒν•  수 μžˆλŠ” 경우

예) 'λΆ™μ—¬λ„£κΈ°', 'ν–‰ μ‚­μ œ', 'ν–‰ μΆ”κ°€' 같은 λ²„νŠΌμ€ μ‚¬μš©ν•˜μ§€ μ•Šκ²Œλ” 숨길 수 μžˆμŠ΅λ‹ˆλ‹€.

 

μž‘λ™ 원리

SAP ALV GridλŠ” `SET_TABLE_FOR_FIRST_DISPLAY` λ©”μ†Œλ“œμ—μ„œ

νŒŒλΌλ―Έν„° `IT_TOOLBAR_EXCLUDING`을 톡해 λΉ„ν™œμ„±ν™”ν•  λ²„νŠΌ λͺ©λ‘μ„ λ„˜κ²¨λ°›μŠ΅λ‹ˆλ‹€.

SAP λ²„νŠΌμ€ λͺ¨λ‘ SAP ν‘œμ€€ κΈ°λŠ₯ μ½”λ“œλ‘œ κ΄€λ¦¬λ©λ‹ˆλ‹€.

πŸ‘‰ λΉ„ν™œμ„±ν™”ν•˜κ³  싢은 λ²„νŠΌμ˜ κΈ°λŠ₯ μ½”λ“œλ₯Ό λ„˜κΈ°λ©΄ μžλ™μœΌλ‘œ ν•΄λ‹Ή λ²„νŠΌμ΄ νˆ΄λ°”μ—μ„œ μˆ¨κ²¨μ§‘λ‹ˆλ‹€.

 

EXCLUDE λ²„νŠΌ 처리 κΈ°λ³Έ ꡬ쑰

DATA: GT_EXCLUDE TYPE UI_FUNCTIONS.

" λΉ„ν™œμ„±ν™”ν•  λ²„νŠΌ μΆ”κ°€
APPEND CL_GUI_ALV_GRID=>MC_FC_LOC_UNDO        TO GT_EXCLUDE. " μ‹€ν–‰ μ·¨μ†Œ
APPEND CL_GUI_ALV_GRID=>MC_FC_LOC_COPY_ROW    TO GT_EXCLUDE. " ν–‰ 볡사
APPEND CL_GUI_ALV_GRID=>MC_FC_LOC_DELETE_ROW  TO GT_EXCLUDE. " ν–‰ μ‚­μ œ
APPEND CL_GUI_ALV_GRID=>MC_FC_LOC_INSERT_ROW  TO GT_EXCLUDE. " ν–‰ μΆ”κ°€
APPEND CL_GUI_ALV_GRID=>MC_FC_LOC_PASTE       TO GT_EXCLUDE. " λΆ™μ—¬λ„£κΈ°

" ALV 호좜
CALL METHOD GRID->SET_TABLE_FOR_FIRST_DISPLAY
  EXPORTING
    I_STRUCTURE_NAME      = 'ZSAMPLE'
    IS_LAYOUT             = GS_LAYOUT
    IT_TOOLBAR_EXCLUDING  = GT_EXCLUDE  " μ—¬κΈ°κ°€ 포인트!
  CHANGING
    IT_OUTTAB             = GT_DATA
    IT_FIELDCATALOG       = GT_FCAT.
ꡬ문  μ„€λͺ…
DATA: GT_EXCLUDE TYPE UI_FUNCTIONS. λΉ„ν™œμ„±ν™”ν•  λ²„νŠΌ μ½”λ“œ λͺ©λ‘μ„ 담을 인터널 ν…Œμ΄λΈ”
APPEND CL_GUI_ALV_GRID=>MC_FC_LOC_UNDO TO GT_EXCLUDE. μ‹€ν–‰ μ·¨μ†Œ λ²„νŠΌμ„ λΉ„ν™œμ„±ν™” λͺ©λ‘μ— μΆ”κ°€
CALL METHOD GRID->SET_TABLE_FOR_FIRST_DISPLAY ALVλ₯Ό 화면에 ν‘œμ‹œν•˜λŠ” λ©”μ†Œλ“œ
IT_TOOLBAR_EXCLUDING = GT_EXCLUDE μ—¬κΈ°μ„œ λΉ„ν™œμ„±ν™” λͺ©λ‘ 전달

 

자주 μ“°λŠ” λ²„νŠΌ λΉ„ν™œμ„±ν™” μ½”λ“œ

βœ”οΈ SAP ν‘œμ€€ κΈ°λŠ₯ μ½”λ“œλ“€μ€ `SE24 → CL_GUI_ALV_GRID → Constants`μ—μ„œ 쑰회 κ°€λŠ₯

λ²„νŠΌ κΈ°λŠ₯ μ½”λ“œ
μ‹€ν–‰ μ·¨μ†Œ `CL_GUI_ALV_GRID=>MC_FC_LOC_UNDO`
λΆ™μ—¬λ„£κΈ° `CL_GUI_ALV_GRID=>MC_FC_LOC_PASTE`
μƒˆ ν–‰ λΆ™μ—¬λ„£κΈ° `CL_GUI_ALV_GRID=>MC_FC_LOC_PASTE_NEW_ROW`
ν–‰ 볡사 `CL_GUI_ALV_GRID=>MC_FC_LOC_COPY_ROW`
ν–‰ μ‚­μ œ `CL_GUI_ALV_GRID=>MC_FC_LOC_DELETE_ROW`
ν–‰ μΆ”κ°€ `CL_GUI_ALV_GRID=>MC_FC_LOC_INSERT_ROW`
인쇄 `CL_GUI_ALV_GRID=>MC_FC_PRINT`
μƒˆ ν–‰ μΆ”κ°€ `CL_GUI_ALV_GRID=>MC_FC_LOC_APPEND_ROW`

 

예제: 퍼포먼슀 버전 (μ„œλΈŒλ£¨ν‹΄ ν™œμš©)

βœ”οΈ 이 방식은 λ‹€λ₯Έ ν…Œμ΄λΈ”λͺ…에도 μž¬μ‚¬μš© κ°€λŠ₯ν•œ 퍼포먼슀 λ²„μ „μž…λ‹ˆλ‹€.

PERFORM EXCLUDE_TOOLBAR_BUTTONS USING 'GT_EXCLUDE'.

FORM EXCLUDE_TOOLBAR_BUTTONS USING P_TABNAME.
  FIELD-SYMBOLS : <TABLE> TYPE UI_FUNCTIONS.
  DATA : L_TAB_NAME LIKE FELD-NAME.

  CONCATENATE P_TABNAME '[]' INTO L_TAB_NAME.
  ASSIGN (L_TAB_NAME) TO <TABLE>.

  APPEND CL_GUI_ALV_GRID=>MC_FC_LOC_UNDO       TO <TABLE>.
  APPEND CL_GUI_ALV_GRID=>MC_FC_LOC_COPY_ROW   TO <TABLE>.
  APPEND CL_GUI_ALV_GRID=>MC_FC_LOC_DELETE_ROW TO <TABLE>.
ENDFORM.

 

핡심 μš”μ•½

ν•­λͺ© μ„€λͺ…
λͺ©μ  SAP ALV νˆ΄λ°”μ—μ„œ λΆˆν•„μš”ν•œ λ²„νŠΌ μˆ¨κΉ€
적용 μœ„μΉ˜ ALV DISPLAY 호좜 μ‹œ `IT_TOOLBAR_EXCLUDING` νŒŒλΌλ―Έν„°
방법 `CL_GUI_ALV_GRID` ν‘œμ€€ λ²„νŠΌ μ½”λ“œ ν™œμš©
μž₯점 화면이 깔끔해지고 μ‚¬μš©μž μ‹€μˆ˜ λ°©μ§€ κ°€λŠ₯
주의점 λ²„νŠΌ μ½”λ“œ μ˜€νƒ€ 주의 (SAP ν‘œμ€€ μƒμˆ˜ μ •ν™•νžˆ μ‚¬μš©)

 

 

 

 

 

728x90
λ°˜μ‘ν˜•