Color en celda de ALV GRID
Caso: Se desea ponerle color a una celda de un ALV.
Solución: Para pintar una celda, podemos utilizar, en el fieldcat del ALV la estructura lvc_t_scol, por ejemplo (sólo pongo lo importante):
TYPES: BEGIN OF ty_alv.
TYPES: name1 TYPE name1,
cellcolors TYPE lvc_t_scol,
TYPES: END OF ty_alv.
TYPES: tty_alv TYPE STANDARD TABLE OF ty_alv.
DATA: gt_alv TYPE ty_alv OCCURS 0 WITH HEADER LINE,
gs_alv TYPE LINE OF tty_alv.
FORM layout_alv USING ls_layout TYPE slis_layout_alv.
DATA l_color TYPE lvc_s_scol.
ls_layout-zebra = ‘X’.
ls_layout-colwidth_optimize = ‘X’.
FIELD-SYMBOLS <fs_report> LIKE LINE OF gt_alv.
ls_layout-coltab_fieldname = ‘CELLCOLORS’.
UNASSIGN <fs_report>.
LOOP AT GT_alv ASSIGNING <fs_report>.
CASE <fs_report>-name1.
WHEN ‘PEDRO’.
l_color-fname = ‘NAME1’ .
l_color-color-col = ‘6’. «ROJO
l_color-color-int = ‘1’. «INTENSIDAD
l_color-color-inv = ‘0’. «INVERSO
APPEND l_color TO <fs_report>-CELLCOLORS.
WHEN ‘JUAN’.
l_color-fname = ‘NAME1’ .
l_color-color-col = ‘3’. «AMARILLO
l_color-color-int = ‘1’.
l_color-color-inv = ‘0’.
APPEND l_color TO <fs_report>-CELLCOLORS.
ENDCASE.
ENDLOOP.
ENDFORM. » layout_alv