ALV 특정 데이터 행/열 에 Hightlight 설정 방법
0. 요구사항
– ALV 데이터중 중복 데이터만 Highlight 넣어주세요.
※ 행에 적용하기
1. Output Internal Table에 Field 추가
– lcolor(4)
2. ALV Layout에 Field 추가
– gs_layout-info_fname = ‘LCOLOR’.
3. 대상 데이터에 lcolor필드값 추가
– gs_display-lcolor = ‘C310’.
4. Grid Refresh
CALL METHOD GO_GRID1->REFRESH_TABLE_DISPLAY
EXCEPTIONS
FINISHED = 1
OTHERS = 2.
5. Color code 표
※ 열에 적용하기
1. Output Internal Table에 Field 추가
– TCOLOR TYPE LVC_T_SCOL, ” Tab Color.
2. ALV Layout에 Field 추가
– GS_LAYOUT-CTAB_FNAME = ‘TCOLOR’.
3. 대상 데이터에 tcolor필드값 추가
– color 테이블 채움 (색상표는 위를 참고)
* 거래처 컬럼의 색을 강조.
CLEAR: GT_COLOR.
GS_COLOR-COLOR-COL = 3.
GS_COLOR-COLOR-INT = 1.
GS_COLOR-COLOR-INV = 0.
GS_COLOR-FNAME = ‘ZKUNNR’.
APPEND GS_COLOR TO GT_COLOR.
– Output Internal Table에 추가
APPEND LINES OF GT_COLOR TO GS_DISPLAY2-TCOLOR.
4. Grid Refresh
CALL METHOD GO_GRID1->REFRESH_TABLE_DISPLAY
EXCEPTIONS
FINISHED = 1
OTHERS = 2.
※ 참고 프로그램 : ITSQ_ALV_COLOR
– ALV 행을 선택하게 해주고 싶은데, 잘 안됨. ㅠㅠ 뭐가 틀린거지.
[#M_소스코드|접기|
LOOP AT LT_DISPLAY INTO LS_DISPLAY.
READ TABLE PT_DISPLAY WITH KEY ZGUBN = LS_DISPLAY-ZGUBN
MATNR = LS_DISPLAY-MATNR
KVGR4 = LS_DISPLAY-KVGR4
TRANSPORTING NO FIELDS
BINARY SEARCH.
IF SY-SUBRC = 0.
LOOP AT PT_DISPLAY INTO GS_DISPLAY FROM SY-TABIX.
IF GS_DISPLAY-ZGUBN NE LS_DISPLAY-ZGUBN OR
GS_DISPLAY-MATNR NE LS_DISPLAY-MATNR OR
GS_DISPLAY-KVGR4 NE LS_DISPLAY-KVGR4.
EXIT.
ENDIF.
LV_TABIX = SY-TABIX.
GS_ROW_NO-ROW_ID = LV_TABIX.
APPEND GS_ROW_NO TO GT_ROW_NO.
* GS_DISPLAY-CHK = ‘X’.
GS_DISPLAY-LCOLOR = ‘C310’.
MODIFY PT_DISPLAY FROM GS_DISPLAY INDEX LV_TABIX TRANSPORTING LCOLOR.
ENDLOOP.
ENDIF. ” IF SY-SUBRC = 0.
ENDLOOP. ” LOOP AT LT_DISPLAY INTO LS_DISPLAY.
CL_GUI_CFW=>FLUSH( ).
CALL METHOD GO_GRID->SET_SELECTED_ROWS
EXPORTING
* IT_INDEX_ROWS =
IT_ROW_NO = GT_ROW_NO
IS_KEEP_OTHER_SELECTIONS = ‘ ‘.
CL_GUI_CFW=>FLUSH( ).
_M#]