ALV GRID颜色设置分别为行,列,单元格三种,如果将字段设置为主键那么主键列会自动变为蓝色。
列颜色的设置
在创建列目录表时将field catalog structure 的 emphasize字段填入需要的颜色代码
eg:
DATA: wa_fields TYPE LINE OF slis_t_fieldcat_alv.
wa_fields-fieldname =
wa_fields-seltext_m =
wa_fields-emphasize =
行颜色的设置
在list data table中添加一个字段(CHAR4)用来存储颜色代码
eg:
*--- Internal table holding list data
DATA BEGIN OF gt_list OCCURS 0 .
INCLUDE STRUCTURE SFLIGHT .
DATA rowcolor(4) TYPE c .
DATA END OF gt_list .
保存数据到list data table中的同时要把颜色字段的代码一起存入,该代码会被alv解析为行项的颜色
初始化ALV前将颜色字段名填入layout structure.
eg:
ps_layout-info_fname =
单元格颜色设置
和行颜色设置相同首先需要在list data table中添加一个字段用来存储行颜色信息,不过类型是LVC_T_SCOL
eg:
*--- Internal table holding list data
DATA BEGIN OF gt_list OCCURS 0 .
INCLUDE STRUCTURE SFLIGHT .
DATA rowcolor(4) TYPE c .
DATA cellcolors TYPE lvc_t_scol .
list data table中的cellcolors字段将被用来存储单元格的颜色信息
eg:
DATA ls_cellcolor TYPE lvc_s_scol .
...
READ TABLE gt_list INDEX 5 .
ls_cellcolor-fname = 'SEATSOCC' .
ls_cellcolor-color-col = '7' .
ls_cellcolor-color-int = '1' .
ls_cellcolor-color-inv = '0' .
ls_callcoloe-nokeycol = '' .
APPEND ls_cellcolor TO gt_list-cellcolors .
MODIFY gt_list INDEX 5 .
ALV GRID 第五条记录的SEATSOCC字段颜色将被设置为C710,如果不希望覆盖主键字段的颜色可以将ls_callcoloe-nokeycol设置为X