FORM set_col_style USING VALUE(PS_TAB)
VALUE(PT_TAB)
VALUE(PS_FCAT)
VALUE(PT_FCAT).
DATA: LS_STYL TYPE LVC_S_STYL,
LT_STYL TYPE LVC_T_STYL,
LS_SCOL TYPE LVC_S_SCOL,
LT_SCOL TYPE LVC_T_SCOL.
DATA: LT_TAB TYPE REF TO DATA,
LS_TAB TYPE REF TO DATA.
FIELD-SYMBOLS: <FS_T_SCOL> TYPE LVC_T_SCOL,
<FS_T_STYL> TYPE LVC_T_STYL.
ASSIGN (PS_FCAT) TO <FS_S_FCAT>.
ASSIGN (PT_FCAT) TO <FS_T_FCAT>.
ASSIGN (PS_TAB) TO <FS_S_TAB>.
ASSIGN (PT_TAB) TO <FS_T_TAB>.
IF <FS_S_TAB> IS ASSIGNED AND
<FS_T_TAB> IS ASSIGNED AND
<FS_S_FCAT> IS ASSIGNED AND
<FS_T_FCAT> IS ASSIGNED.
LOOP AT <FS_T_TAB> ASSIGNING <FS_S_TAB>.
LOOP AT <FS_T_FCAT> ASSIGNING <FS_S_FCAT>.
CASE <FS_S_FCAT>-FIELDNAME.
WHEN 'BUKRS'.
LS_STYL-FIELDNAME = <FS_S_FCAT>-FIELDNAME.
LS_STYL-STYLE = CL_GUI_ALV_GRID=>MC_STYLE_DISABLED.
LS_SCOL-FNAME = <FS_S_FCAT>-FIELDNAME.
LS_SCOL-COLOR-COL = 5.
LS_SCOL-COLOR-INT = 0.
LS_SCOL-COLOR-INV = 0.
WHEN OTHERS.
CONTINUE.
ENDCASE.
INSERT LS_STYL INTO TABLE LT_STYL.
INSERT LS_SCOL INTO TABLE LT_SCOL.
ENDLOOP.
ASSIGN COMPONENT 'CELLSCOL' OF STRUCTURE <FS_S_TAB> TO <FS_T_SCOL>.
ASSIGN COMPONENT 'CELLSTYL' OF STRUCTURE <FS_S_TAB> TO <FS_T_STYL>.
IF <FS_T_SCOL> IS ASSIGNED AND
<FS_T_STYL> IS ASSIGNED.
INSERT LINES OF LT_STYL INTO TABLE <FS_T_STYL>.
INSERT LINES OF LT_SCOL INTO TABLE <FS_T_SCOL>.
UNASSIGN: <FS_T_STYL>, <FS_T_SCOL>.
ENDIF.
CLEAR: LS_STYL, LS_SCOL.
CLEAR: LT_STYL[], LT_SCOL[].
ENDLOOP.
ELSE.
MESSAGE S000 WITH '필드 카탈로그 생성 중 에러가 발생하였습니다.' DISPLAY LIKE 'E'.
LEAVE TO SCREEN 0.
ENDIF.
ENDFORM.
'SAP > ABAP 코드' 카테고리의 다른 글
(ABAP 코드) 필드카탈로그 / 테이블 색/스타일 (0) | 2022.02.11 |
---|---|
(ABAP 코드) ALV 3분할 (0) | 2022.02.11 |
(ABAP 코드) 첨부파일 업로드&다운로드 (0) | 2022.02.08 |
(ABAP 코드) 엑셀 업로드 - CLASS 사용 (라인무한) (0) | 2022.02.08 |
(ABAP 코드) Excel 관련 변수 타입 (0) | 2022.02.08 |