FORM setting_cell .
DATA : lt_color TYPE lvc_t_scol,
ls_color TYPE lvc_s_scol,
ls_fieldcat TYPE lvc_s_fcat,
l_mode TYPE raw4,
l_type(4) TYPE c,
index TYPE i.
LOOP AT gt_sflight.
index = index + 1.
CLEAR: lt_color[].
LOOP AT gt_fieldcat INTO ls_fieldcat.
CLEAR ls_color.
ls_color-fname = ls_fieldcat-fieldname.
IF ls_color-fname EQ 'PLANETYPE'.
CASE gt_sflight-planetype.
WHEN '747-400'.
ls_color-color-col = 5.
ls_color-color-int = 0.
WHEN 'A319'.
ls_color-color-col = 3.
ls_color-color-int = 0.
WHEN 'A310-300'.
ls_color-color-col = 6.
ls_color-color-int = 0.
ENDCASE.
INSERT ls_color INTO TABLE lt_color.
ENDIF.
ENDLOOP.
CLEAR: gt_sflight-cellcolor[].
INSERT LINES OF lt_color
INTO TABLE gt_sflight-cellcolor.
MODIFY gt_sflight INDEX index.
ENDLOOP.
ENDFORM. " SETTING_CELL
index = index + 1. 이거 왜 쓰인거지 궁금합니다. 알려주세요.
마지막 쯤에 MODIFY gt_sflight INDEX index. 에서 수정할 라인을 지정하느라 쓰이는 것 같네요.
디버깅을 걸어서 index 값과 sy-index, sy-tabix 값을 확인해보며 진행하면 도움이 될 것 같아요.