设置ALV 行颜色

http://www.cnblogs.com/VerySky/articles/2147595.html

. 行颜色

    1. 在结果内表中添加字段  color(4) TYPE c ,用来存储四位颜色值.

    2. 在内表循环中给这个字段赋值,比如'C310' 黄色.

    3. 最关键的一点,在layout结构中设定颜色字段的名字,代码如下:

            is_layout-info_fieldname = 'COLOR'. 行颜色字段

        is_layout 是我们声明的一个ALV的 type slis_layout_alv  的结构.

 . 列颜色

   列颜色较为简单,我们在填充结构 it_fieldcat TYPE slis_t_fieldcat_alv 时,为每一列直接赋值就好了。

 三.单元格颜色

    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

橙色

控制

 

 

 

 

颜色编码在地址里

http://blog.csdn.net/wren2004/article/details/3941551

原文地址:https://www.cnblogs.com/springzt/p/4319947.html