The following segment of my code has no syntax error. Trying to change the color dynamically of a cell.
But the grid table has no change in the color of the targeted cell. Is there
something i miss out?
MODULE build_struct_9000 OUTPUT.
Create dynamic Internal Table
CREATE DATA o_table TYPE TABLE OF (p_table) .
ASSIGN o_table->* TO <fs_table>.
Create dynamic work area
CREATE DATA o_line LIKE LINE OF <fs_table>.
ASSIGN o_line->* TO <fs_warea>.
CREATE DATA o_color TYPE lvc_t_scol.
ASSIGN o_color->* TO <t_cellcolors>.
Field Catalogue
CALL FUNCTION 'NAMETAB_GET'
EXPORTING
langu = sy-langu
tabname = p_table
TABLES
nametab = i_nametab.
LOOP AT <fs_table> INTO <fs_warea>.
ASSIGN COMPONENT 'T_CELLCOLORS'
OF STRUCTURE <fs_warea> TO <t_cellcolors>.
LOOP AT i_nametab INTO w_nametab .
CLEAR wa_cellcolors.
wa_cellcolors-fname = w_nametab-fieldname.
wa_cellcolors-color-col = '3'.
wa_cellcolors-color-int = '1'.
wa_cellcolors-color-inv = '1'.
APPEND wa_cellcolors TO <t_cellcolors>.
ENDLOOP.
MODIFY <fs_table> FROM <t_cellcolors>.
ENDLOOP.
ASSIGN COMPONENT 'T_CELLCOLORS'
OF STRUCTURE <fs_warea> TO <t_cellcolors>.
LOOP AT i_ED INTO wa_ED.
READ TABLE <fs_table> INTO <fs_warea> INDEX wa_ED-RECORDNO.
IF sy-subrc EQ 0.
READ TABLE <t_cellcolors> INTO wa_cellcolors
WITH KEY fname = wa_ED-ERRORFIELD.
IF sy-subrc EQ 0.
wa_cellcolors-fname = wa_ED-ERRORFIELD.
wa_cellcolors-color-col = '6'.
wa_cellcolors-color-int = '0'.
wa_cellcolors-color-inv = '0'.
MODIFY <t_cellcolors> FROM wa_cellcolors.
ENDIF.
MODIFY <fs_table> FROM <t_cellcolors> INDEX wa_ED-RECORDNO.
endif.
ENDLOOP.
LOOP AT i_nametab INTO w_nametab .
w_fcat-col_pos = w_nametab-position.
w_fcat-fieldname = w_nametab-fieldname .
w_fcat-coltext = w_nametab-fieldname .
w_fcat-datatype = w_nametab-datatype.
w_fcat-inttype = w_nametab-inttype.
w_fcat-intlen = w_nametab-intlen.
w_fcat-decimals = w_nametab-decimals.
IF w_nametab-keyflag NE 'X'.
w_fcat-edit = 'X'.
ENDIF.
APPEND w_fcat TO i_fcat.
ENDLOOP.
ENDMODULE. " build_struct_9000 OUTPUT