-
ALV 셀별 스타일 지정SAP/ABAP 2013. 3. 25. 18:14
DATA : LT_CELLTAB TYPE LVC_T_STYL,
LS_CELLTAB TYPE LVC_S_STYL." 버튼 스타일
CLEAR : LS_CELLTAB.
LS_CELLTAB-FIELDNAME = 'DETAIL'.
LS_CELLTAB-STYLE = CL_GUI_ALV_GRID=>MC_STYLE_BUTTON.
" LS_CELLTAB-STYLE = CL_GUI_ALV_GRID=>MC_STYLE_DISABLED.
APPEND LS_CELLTAB TO LT_CELLTAB.
LOOP AT GT_OTAB.
GT_OTAB-DETAIL = ICON_HISTORY.
CLEAR : GT_OTAB-CELLS, GT_OTAB-CELLS[].
INSERT LINES OF LT_CELLTAB_BTN INTO TABLE GT_OTAB-CELLS.
MODIFY GT_OTAB.
ENDLOOP.
ALV 세팅시 레이아웃에 다음과같이 CELL STYLE 필드를 지정해준다.
PS_LAYOUT-STYLEFNAME = 'CELLS'.필드 카달록으로 컬럼 전체가 아니라 데이터 확인후 셀별로 스타일 지정할때는 위와 같이 사용한다. CL_BUI_ALV_GRID 클래스에 각각의 다음과 같은 스타일이 정의 되어 있으니 참고.
MC_STYLE4_LINK Set Link Style '00000004' MC_STYLE4_LINK_NO Remove Link Style '00000008' MC_STYLE_BUTTON Button '20000000' MC_STYLE_DISABLED Not Ready for Input '00100000' MC_STYLE_ENABLED Ready for Input '00080000' MC_STYLE_F4 F4 '02000000' MC_STYLE_F4_NO No F4 '04000000' MC_STYLE_HOTSPOT Hotspot '00200000' MC_STYLE_HOTSPOT_NO Disable Hotspot '00400000' MC_STYLE_NO_DELETE_ROW Delete Rows not Enabled '10000000' 값을 직접 입력하든 그건 니 맘.
아래와 같이 FIELD CATALOG에서 스타일을 지정하면 셀별 스타일은 무시되는 것 같음(?).
GS_FCAT1_LN-COL_POS = 13.
GS_FCAT1_LN-FIELDNAME = 'DETAIL'.
GS_FCAT1_LN-COLTEXT = '변경이력'(018).
GS_FCAT1_LN-OUTPUTLEN = 13.
GS_FCAT1_LN-DATATYPE = 'CHAR'.
GS_FCAT1_LN-JUST = 'C'.
"GS_FCAT1_LN-STYLE = CL_GUI_ALV_GRID=>MC_STYLE_BUTTON.
APPEND GS_FCAT1_LN TO GT_FCAT1.'SAP > ABAP' 카테고리의 다른 글
Dynamic Selection Screen (0) 2013.04.15 환율 그리고 독특한 날짜필드 TCURR-GDATU (0) 2013.04.11 배치잡 수행후 사용자에게 메시지 알림 (0) 2013.03.25 심플한 팝업 메시지 (0) 2013.03.25 심플한 필드카달로그 - PERFORM 버전 (0) 2013.03.21