ABAP 개발을 하다 보면 제일 많이 하는게 ALV 리스트 개발을 하는 것일 것이다. ALV 가 워낙 강력한 기능들이 많은데 잘 사용하지 못할 때가 너무 많다. 필요한 그리드의 기능을 다 가지고 있어서 잘 세팅하는 법만 알아도 사용자가 요구하는 조건을 충족 시킬 수가 있다. ( 사용자는 기능을 잘 모르기 때문에 개발자가 잘 가이드를 해야 한다. )
오늘은 Class ALV 의 Cell 별로 색상을 넣는 방법을 포스팅 하려고 한다. ALV 의 필드 카탈로그에서 한 컬럼씩 색상을 줄 수도 있지만 각 셀 별로 색상을 주는 것도 가틍하다. 한 컬럼씩 색상을 넣게 되면 가로의 Row 의 색상을 줄 수가 없는데 Cell 별로 색상을 넣어주면 Row 의 색상을 넣는 것도 가능하다.
위의 레포트에서 보면 가장 아래줄에 녹색으로 색상이 들어 간 것을 확인 할 수 있다. 필드 카탈로그에서 색상을 넣는다면 컬럼으로만 넣을 수 있고 위와 같이 가로로 넣을 수는 없을 것이다. 그리고 예를 들면 특정 값 일 때 색상을 다르게 할 수 도 있는데 필드 카탈로그의 설정만으로는 부족한 부분이 있다.
" 1. CELL 색상을 위한 변수 설정 변수 추가 DATA : BEGIN OF GT_DATA OCCURS 0, MATNR LIKE MARA-MATNR, MFRPN LIKE MARA-MFRPN, CODE(2), CODE_TEXT(10), ".... CTAB TYPE LVC_T_SCOL, " CELL 색상 변수 END OF GT_DATA. " 2. ALV GRID LAYOUT 에 COLOR 필드 설정 FORM GRID_SET_LAYO CHANGING CS_LAYO TYPE LVC_S_LAYO. CS_LAYO-CWIDTH_OPT = 'X'. CS_LAYO-SEL_MODE = ''. CS_LAYO-ZEBRA = 'X'. * CS_LAYO-BOX_FNAME = 'SELX'. CS_LAYO-CTAB_FNAME = 'CTAB'. " 이부분을 추가한다. CS_LAYO-STYLEFNAME = 'STYLE'. ENDFORM. " GRID_SET_LAYO " 3. SET ALV 에서 FIELD COLOR 부분 추가 DATA : LT_FCAT TYPE LVC_T_FCAT. PERFORM GRID_SET_FIELD_COLOR TABLES GT_DATA USING LT_FCAT. " 4. SET FIELD COLOR PERFORM 문 추가 *&---------------------------------------------------------------------* *& Form GRID_SET_FIELD_COLOR *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * -->P_GT_DATA text *----------------------------------------------------------------------* FORM GRID_SET_FIELD_COLOR TABLES PT_DATA STRUCTURE GT_DATA USING PT_LVC_FCAT TYPE LVC_T_FCAT. DATA: L_CTAB TYPE LVC_S_SCOL, LS_FCAT TYPE LVC_S_FCAT, LV_TABIX TYPE SY-TABIX. LOOP AT PT_DATA WHERE CODE = 'D'. " 4번째 줄의 CODE 가 D LV_TABIX = SY-TABIX. LOOP AT PT_LVC_FCAT INTO LS_FCAT WHERE FIELDNAME NE 'MATNR'. CLEAR : L_CTAB. L_CTAB-FNAME = LS_FCAT-FIELDNAME. " 색상을 추가할 CELL FIELD NAME L_CTAB-COLOR-COL = 5. " 색상은 녹색 L_CTAB-COLOR-INT = 1. L_CTAB-COLOR-INV = 0. APPEND L_CTAB TO PT_DATA-CTAB. ENDLOOP. MODIFY PT_DATA INDEX LV_TABIX. ENDLOOP. ENDFORM. " GRID_SET_FIELD_COLOR
위의 코드는 일부만 발췌한 부분인다. 또한 GT_DATA 부분에 CTAB 이라는 COLOR 를 설정할 수 있는 FIELD 를 추가와 LAYOUT 에 COLOR를 설정하는 필드가 CTAB 이라고 추가를 해야 정상적으로 ALV 에서 해당 필드에 색상이 추가된다.
반응형
'SAP > ABAP' 카테고리의 다른 글
ABAP Call Screen 100 실행 후 Write 구문 출력하기 (0) | 2015.01.26 |
---|---|
ABAP 텍스트 박스 ( Input Box ) Dropdown List 만들기 (0) | 2015.01.20 |
ABAP Stored Procedure 호출방법 (0) | 2015.01.15 |
ABAP 스크린 제목에 & 넣는 방법 (0) | 2014.12.16 |
ABAP Class ALV Checkbox 변경시 Data Changed Event 실행 (0) | 2014.12.15 |
ABAP 파일 업로드, 다운로드시 파일 선택 팝업 생성 (0) | 2014.11.18 |
ABAP Report 프로그램 실행시 Tcode 체크 (0) | 2014.11.17 |
ABAP Parameters 에 소숫점 및 마이너스 금액 입력 (0) | 2014.10.21 |
ABAP RANGE 변수를 PERFORM 문의 파라메터로 사용하기 (0) | 2014.09.04 |
ABAP Field Symbol 의 사용 (0) | 2014.09.03 |