TYPE-POOLS: slis, icon.
DATA: fieldcat TYPE slis_t_fieldcat_alv.
DATA: BEGIN OF imara OCCURS 0,
light(4) TYPE c,
matnr TYPE mara-matnr,
mtart TYPE mara-mtart,
maktx TYPE makt-maktx,
color_line(4) TYPE c,
tcolor TYPE slis_t_specialcol_alv,
END OF imara.
DATA: xcolor TYPE slis_specialcol_alv.
START-OF-SELECTION.
PERFORM get_data.
PERFORM write_report.
FORM get_data.
WRITE icon_green_light AS ICON TO imara-light.
imara-matnr = 'ABC'.
imara-mtart = 'ZCFG'.
imara-maktx = 'This is description for ABC'.
APPEND imara.
WRITE icon_yellow_light AS ICON TO imara-light.
imara-matnr = 'DEF'.
imara-mtart = 'ZCFG'.
imara-maktx = 'This is description for DEF'.
APPEND imara.
WRITE icon_red_light AS ICON TO imara-light.
imara-matnr = 'GHI'.
imara-mtart = 'ZCFG'.
imara-maktx = 'This is description for GHI'.
APPEND imara.
LOOP AT imara.
IF sy-tabix = 1. " Index of internal table
imara-color_line = 'C410'. " color line
ENDIF.
IF sy-tabix = 2. " color CELL
CLEAR xcolor.
xcolor-fieldname = 'MATNR'.
xcolor-color-col = '3'.
xcolor-color-int = '1'. " Intensified on/off
* xcolor-color-inv = '0'. " It seems no influence
APPEND xcolor TO imara-tcolor.
ENDIF.
MODIFY imara.
ENDLOOP.
ENDFORM. "get_data
FORM write_report.
DATA: layout TYPE slis_layout_alv.
layout-coltab_fieldname = 'TCOLOR'.
layout-info_fieldname = 'COLOR_LINE'.
PERFORM build_field_catalog.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
is_layout = layout
it_fieldcat = fieldcat
TABLES
t_outtab = imara.
ENDFORM. "write_report
FORM build_field_catalog.
DATA: fc_tmp TYPE slis_t_fieldcat_alv WITH HEADER LINE.
CLEAR: fieldcat. REFRESH: fieldcat.
CLEAR: fc_tmp.
fc_tmp-reptext_ddic = 'Status'.
fc_tmp-fieldname = 'LIGHT'.
fc_tmp-tabname = 'IMARA'.
fc_tmp-outputlen = '4'.
fc_tmp-icon = 'X'.
APPEND fc_tmp TO fieldcat.
CLEAR: fc_tmp.
fc_tmp-reptext_ddic = 'Material Number'.
fc_tmp-fieldname = 'MATNR'.
fc_tmp-tabname = 'IMARA'.
fc_tmp-outputlen = '18'.
APPEND fc_tmp TO fieldcat.
CLEAR: fc_tmp.
fc_tmp-reptext_ddic = 'Material Type'.
fc_tmp-fieldname = 'MTART'.
fc_tmp-tabname = 'IMARA'.
fc_tmp-outputlen = '10'.
APPEND fc_tmp TO fieldcat.
CLEAR: fc_tmp.
fc_tmp-reptext_ddic = 'Material'.
fc_tmp-fieldname = 'MAKTX'.
fc_tmp-tabname = 'IMARA'.
fc_tmp-outputlen = '40'.
APPEND fc_tmp TO fieldcat.
ENDFORM. "build_field_catalog
输出结果显示