메뉴 건너뛰기
로그인 유지
브라우저를 닫더라도 로그인이 계속 유지될 수 있습니다. 로그인 유지 기능을 사용할 경우 다음 접속부터는 로그인할 필요가 없습니다. 단, 게임방, 학교 등 공공장소에서 이용 시 개인정보가 유출될 수 있으니 꼭 로그아웃을 해주세요.
냐옹이 2008.06.19 22:46 조회 수 : 1537 추천:7
alv에서 레이아웃 컬러를 넣고싶은데...
ls_layout-zebra = abap_true. <==이것만 알고있어서...
좀 화려하게 여러색을 넣는방법은 없나요???
2008.06.19 22:53
물론 있지요....
row 별로 색상을 줄수도 있구요..column별로도 넣을 수 있습니다.
class를 사용하시면 cell별로도 넣을 수 있습니다. ===> 자료실에서 검색하세요 "An Easy Reference for ALV Grid Control.pdf" 파일에
자료가 나와 있습니다..
함수를 이용한 alv에서 row별로 색상을 주는 예는
.. 우선 처음에 internal table 안에 다음과 같은 field를 추가해야 합니다. 선언되는 field는 header가 없는 internal table입니다. 원래의 itab속의 internal table을 선언하는 것입니다.
DATA: begin of itab occurs 0, ... 기존 선언문 ... ALV_COLOR TYPE SLIS_T_SPECIALCOL_ALV. "필드명은 아무거나! DATA: end of itab.
다음으로 internal table을 looping하면서 조건에 따라 color를 setting하면 됩니다. 이때, color에 대한 field명을 지정하지 않으면 한 row 전체에 대한 색상적용입니다. 다음의 예는 color를 한줄한줄 반전시키는 작업입니다.
DATA: t_colinfo_table LIKE SLIS_T_SPECIALCOL_ALV WITH HEADER LINE.
LOOP AT itab. refresh t_colinfo_table. "Coloring에 대한 정보를 담을 internal table clear t_colinfo_table.
t_colinfo_table-color-col = 2. "COL_NORMAL t_colinfo_table-color-int = sy-tabix MOD 2. "반전! t_colinfo_table-nokeycol = 'X'. "Key부분도 color 동일적용 t_colinfo_table-fieldname = SPACE. "Field지정 없음 ** 개별적인 Feild를 Color Control하시려면 다음과 같이 * t_colinfo_table-fieldname = '필드A'. * append t_colinfo_table. * t_colinfo_table-fieldname = '필드B'. * t_colinfo_table-color-col = 5. * append t_colinfo_table. ** 위에 처럼 하나하나씩 필드지정후 append하셔야 합니다. append t_colinfo_table. * append가 끝났으면 해당 table을 internal table내의 field로 copy해야겠죠? itab-ALV_COLOR[] = t_colinfo_table[]. "Table 내용 copy! modify itab. "Modify table ENDLOOP.
위의 내용처럼 하신뒤 마지막 작업을 하셔야 합니다. DATA: alv_layout TYPE SLIS_LAYOUT_ALV. "Report의 Layout 설정
alv_layout-COLTAB_FIELDNAME = 'ALV_COLOR'. "itab의 color정보 fieldname
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY' EXPORTING IS_LAYOUT = alv_layout IT_FIELDCAT = alv_fieldcat "itab의 structure정의 TABLES T_OUTTAB = itab.
입니다..
혹시 "An Easy Reference for ALV Grid Control.pdf" 파일 못 찾으시면 쪽지주세요.. 자료 보내 드리겠습니다..
즐밥하세요...
댓글 수정 삭제
2008.06.19 22:56
넹...감사합니다.
2008.06.20 04:11
펑션도 class 와 같은 방법이요~
타입만 조금 신경쓰심 되요.
물론 있지요....
row 별로 색상을 줄수도 있구요..column별로도 넣을 수 있습니다.
class를 사용하시면 cell별로도 넣을 수 있습니다. ===> 자료실에서 검색하세요 "An Easy Reference for ALV Grid Control.pdf" 파일에
자료가 나와 있습니다..
함수를 이용한 alv에서 row별로 색상을 주는 예는
.. 우선 처음에 internal table 안에 다음과 같은 field를 추가해야 합니다.
선언되는 field는 header가 없는 internal table입니다. 원래의 itab속의
internal table을 선언하는 것입니다.
DATA: begin of itab occurs 0,
... 기존 선언문 ...
ALV_COLOR TYPE SLIS_T_SPECIALCOL_ALV. "필드명은 아무거나!
DATA: end of itab.
다음으로 internal table을 looping하면서 조건에 따라 color를 setting하면 됩니다.
이때, color에 대한 field명을 지정하지 않으면 한 row 전체에 대한 색상적용입니다.
다음의 예는 color를 한줄한줄 반전시키는 작업입니다.
DATA: t_colinfo_table LIKE SLIS_T_SPECIALCOL_ALV WITH HEADER LINE.
LOOP AT itab.
refresh t_colinfo_table. "Coloring에 대한 정보를 담을 internal table
clear t_colinfo_table.
t_colinfo_table-color-col = 2. "COL_NORMAL
t_colinfo_table-color-int = sy-tabix MOD 2. "반전!
t_colinfo_table-nokeycol = 'X'. "Key부분도 color 동일적용
t_colinfo_table-fieldname = SPACE. "Field지정 없음
** 개별적인 Feild를 Color Control하시려면 다음과 같이
* t_colinfo_table-fieldname = '필드A'.
* append t_colinfo_table.
* t_colinfo_table-fieldname = '필드B'.
* t_colinfo_table-color-col = 5.
* append t_colinfo_table.
** 위에 처럼 하나하나씩 필드지정후 append하셔야 합니다.
append t_colinfo_table.
* append가 끝났으면 해당 table을 internal table내의 field로 copy해야겠죠?
itab-ALV_COLOR[] = t_colinfo_table[]. "Table 내용 copy!
modify itab. "Modify table
ENDLOOP.
위의 내용처럼 하신뒤 마지막 작업을 하셔야 합니다.
DATA: alv_layout TYPE SLIS_LAYOUT_ALV. "Report의 Layout 설정
alv_layout-COLTAB_FIELDNAME = 'ALV_COLOR'. "itab의 color정보 fieldname
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING IS_LAYOUT = alv_layout
IT_FIELDCAT = alv_fieldcat "itab의 structure정의
TABLES T_OUTTAB = itab.
입니다..
혹시 "An Easy Reference for ALV Grid Control.pdf" 파일 못 찾으시면 쪽지주세요.. 자료 보내 드리겠습니다..
즐밥하세요...