ALV Cell Style, Cell Color 개별 지정
* Internal table
DATA: BEGIN OF gs_result_100.
INCLUDE STRUCTURE sflight.
DATA: stats(4),
check,
ziso LIKE t002-laiso,
zdrop(10) type c,
cinfo TYPE lvc_emphsz,
cellstyl TYPE lvc_t_styl,
cellscol TYPE lvc_t_scol.
DATA: END OF gs_result_100,
gt_result_100 LIKE TABLE OF gs_result_100.
* ALV Layout setting
gs_layout_1-info_fname = 'CINFO'.
gs_layout_1-stylefname = 'CELLSTYL'.
gs_layout_1-ctab_fname = 'CELLSCOL'.
* Logic
DATA: ls_scol TYPE lvc_s_scol,
lt_scol TYPE lvc_t_scol,
lt_styl TYPE lvc_t_styl,
ls_styl TYPE lvc_s_styl,
lw_idx TYPE sy-tabix.
LOOP AT gt_result_100 INTO gs_result_100.
lw_idx = sy-tabix.
CLEAR: lt_scol, ls_scol,
lt_styl, ls_styl.
IF gs_result_100-price > p_price.
ls_scol-fname = 'PRICE'.
ls_scol-color-col = 6.
ls_scol-color-int = 1.
APPEND ls_scol TO lt_scol.
ENDIF.
IF gs_result_100-currency = 'USD'.
ls_styl-fieldname = 'CURRENCY'.
ls_styl-style = cl_gui_alv_grid=>mc_style_enabled.
APPEND ls_styl TO lt_styl.
ELSE.
ls_styl-fieldname = 'CURRENCY'.
ls_styl-style = cl_gui_alv_grid=>mc_style_disabled.
APPEND ls_styl TO lt_styl.
ENDIF.
INSERT LINES OF lt_styl INTO TABLE gs_result_100-cellstyl.
INSERT LINES OF lt_scol INTO TABLE gs_result_100-cellscol.
MODIFY gt_result_100 FROM gs_result_100
INDEX lw_idx
TRANSPORTING cellscol cellstyl.
ENDLOOP.