ALV色码\颜色设置
ALV色码\颜色设置
2011-08-04 16:39:17| 分类: sap-alv | 标签:alv使用到的色码 alv色码\颜色设置 |字号 订阅
ALV里色码.就是颜色编码,4位CHAR型,形式如下所示:C X Y Z(四位),其中第一位为‘C’固定不变,X表示颜色代码(如下表所示),Y表示加强的设置,Z表示相反的设置。
ALV使用到的颜色如下所示:
C color
1 gray-blue
2 light gray
3 yellow
4 blue green
5 green
6 red
7 orange
在平时的ALV开发中,客户有些特殊的需求,需要在ALV的网格中绘上一些特殊的颜色,方便他们在第一时间看到自己想要看到的东西,如果没有这些颜色的设置,要从一大堆显示的数据中找到自己关心的东西,估计会比较难,下面我将给大家介绍在ALV GRID中设置列、行、单元格的颜色:
1)列的颜色设置
列的颜色设置相对来说会比较简单,因为在字段目录的类型LVC_S_FCAT中提供了对列颜色设置的字段 EMPHASIZE来实现:
如:w_fcat type lvc_s_fcat.
w_fcat- EMPHASIZE = 'C701'.
在使用的过程有个问题要注意,就是如果当前设置颜色的列为关键(KEY)列,则设置的颜色就不会起作用了.
2)行的颜色设置
为某行颜色的设置,实现起来相对列的设置有点复杂,需要在显示的内表中添加一个字段用于显示颜色,这个字段不需要在字段目录中设置,实现如下所示:
如:data: begin of t_itab occurs 0,
.......(字段)
rowcolor(4) type c, "新添加用字段于设置行的颜色
end of t_itab.
添加了用于设置颜色的字段,ALV如何知道你设置了颜色了呢,这个嘛就在ALV的布局类型有个字段info_name进行通知ALV设置了颜色的:(这一步很重要哦)
如:s_lay type lvc_s_layo.
s_lay-info-name = 'ROWCOLOR'. " ROWCOLOR就是上面在显示输出的内表中添加的字段。
以上两步都搞定了,那下来就是要CODING设置那些行要设置颜色了:
如:loop at t_itab.
if t_itab-a eq '1'.
t_itab-rowcolor = '4'. "设置颜色
modify t_itab.
endif.
endloop.
3)单元格颜色设置
其实设置单元格与行的设置性质都一样的了,只是设置了不同的参数而已,需要在定义的输出内表中插入一个表类型的字段,这样输出的内表就形成了DEEP结构了。
如: data: begin of t_itab occurs 0,
...........
cellcolor type lvc_t_scol,
end of t_itab.
在ALV的布局结构设置显示颜色:
如:f_lay-ctab_fname = 'CELLCOLOR'.(这一步也是非常非常的重要的)
lvc_t_scol有三个参数进行设置,
fname:很显示这是关于字段名,就是要设置的字段名,如果这个为空,直接在color中设置颜色,则整行都设置上颜色了。
color:人如其名,这个就是关系到颜色的了,color在这里一个结构,它包含有三个字段,一个是颜色代码,一个是加强,最后一个是相反设置。
nokeycol:这个是跟KEY列有关的,通过这个字段可以避免关键列对颜色的的覆盖。
完成上面的设置,就开始进行对内表中的数据进行单元格颜色设置了:
如: loop at t_itab.
data:

浙公网安备 33010602011771号