1. 在结果内表中添加字段 cellcolor TYPE lvc_t_scol . 这是一个内表,用来存储单元格的颜色。
2.在内表循环中给这个内表赋值,示例代码如下:
PERFORM fill_cellcolor CHANGING wa_result-cellcolor. " 单元格高亮(黄色)
FORM fill_cellcolor CHANGING p_cellcolor type lvc_t_scol.
DATA wa_cellcolor TYPE lvc_s_scol . " 单元格颜色结构
DEFINE set_color.
wa_cellcolor-fname = &1.
wa_cellcolor-color-col = '3'.
wa_cellcolor-color-int = '1'.
wa_cellcolor-color-inv = '0'.
append wa_cellcolor to p_cellcolor.
END-OF-DEFINITION.
set_color 'MATNR'.
set_color 'MAKTX'.
set_color 'MEINS'.
set_color 'CNT_S'.
set_color 'QUOTE1'.
set_color 'QUOTE2'.
ENDFORM. " fill_cellcolor
3. 最关键的一点,在layout结构中设定颜色字段的名字,代码如下:
is_layout-coltab_fieldname = 'CELLCOLOR'. " 单元格颜色字段
总结:
当同时设定了行颜色和列颜色后,行颜色会覆盖列颜色,有的时候用户不希望这种结果的出现,解决办法就是设定每行的单元格(当然不包括与设定列颜色的列相交叉的单元格)的颜色。
附录:ABAP颜色代码
ABAP中的颜色代码是由4位字都组成的
Cxyz
C:color的简写,颜色代码均以C开头
x:标准色代码,SAP中一共有7个标准色
y:反转颜色启用/关闭 1/0
z:增强颜色启用/关闭 1/0
标准色代码一览表
X |
颜色 |
主要用处 |
1 |
灰蓝色 |
抬头、标题栏 |
2 |
浅灰色 |
列表内容 |
3 |
黄色 |
汇总 |
4 |
蓝色 |
关键字 |
5 |
绿色 |
正确 |
6 |
红色 |
错误 |
7 |
橙色 |
控制 |