Skip to Content
0
Former Member
Oct 01, 2007 at 10:00 AM

Change cell color dynamically

27 Views

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