有时候想控制ALV某列的颜色,如图:
这个参数是在slis_t_fieldcat_alv这里面控制的:
DATA
: fieldcat
TYPE slis_t_fieldcat_alv
WITH
HEADER
LINE
.
: fieldcat
TYPE slis_t_fieldcat_alv
WITH
HEADER
LINE
.
CONSTANTS:
con_red TYPE char4 VALUE ‘C500’, “红色
con_green TYPE char4 VALUE ‘C600’. “绿色
con_green TYPE char4 VALUE ‘C600’. “绿色
DEFINE fill_fieldcat.
fieldcat-col_pos = &1.
fieldcat-fieldname = &2.
fieldcat-seltext_l = &3.
fieldcat-col_pos = &1.
fieldcat-fieldname = &2.
fieldcat-seltext_l = &3.
“设置列的颜色
case fieldcat-fieldname.
when 你想要的那个字段名称. “借方红色,贷方绿色
fieldcat-emphasize = con_red.
when 你想要的那个字段名称.
fieldcat-emphasize = con_green.
when others.
endcase.
fieldcat-do_sum = ‘X’. “统计功能打开
append fieldcat.
END-OF-DEFINITION.
然后在调用时:
CALL FUNCTION ‘REUSE_ALV_GRID_DISPLAY’
EXPORTING
is_layout = layout
it_fieldcat = fieldcat[]
……
至于色码:参考:http://blog.csdn.net/f122300349/article/details/5516371
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
以下引自: http://blog.csdn.net/lijunhai/article/details/1967091
1
)颜色含义
)颜色含义
1
:海蓝;2:浅清;3:黄色;4:浅蓝;5:青色;6:红色;7:橙色。
:海蓝;2:浅清;3:黄色;4:浅蓝;5:青色;6:红色;7:橙色。
(1)首位为主颜色;
(2)次位为辅助颜色;
(3)末位为0时,表示首位数字表为表格的底色;
末位为1时,则表示以1为底色,首位数字则表为表格字体的颜色;
末位为其它颜色时,则表示底色为ALV的默认颜色;
以上三条是本人大概总结出来的规律,本人发现的现象基本如上,但也不一定全部正确。
其中C200与系统标准ALV底色比较相似;C410与系统标准关键字颜色比较相似。
2
)列颜色:
)列颜色:
设置ALV字段fieldcat属性:
i_fieldcat-emphasize = &3. “
颜色
i_fieldcat-emphasize = &3. “
颜色
把fieldcat属性
写入属性内表allfields:alv_append_field ‘WERKS’ ‘
工厂
‘ ‘C110’.
写入属性内表allfields:alv_append_field ‘WERKS’ ‘
工厂
‘ ‘C110’.
C110
:为颜色代码;
:为颜色代码;
3
)行颜色:
)行颜色:
(1)在内表itab定义一个字段line_color来存储颜色;loop内表itab,在需要显示颜色的行其值赋为颜色’C110’;
(2)在定义alv显示格式定义:
设置ALV显示layout属性:i_layout-info_fieldname = ‘LINE_COLOR’,line_color为内表定义的存储颜色的列名。
4)单元格颜色
单元格颜色属性:LVC_S_SCOL,该属性为一结构,含三个字段:FNAME(30)、COLOR(颜色结构,含三个字段:col(10)、int(3)、inv(10))、NOKEYCOL(1)(覆盖码颜色)
ALV
列属性:coltab_fieldname
列属性:coltab_fieldname
exa
:
:
定义内表itab含字段FLDNAME type LVC_S_SCOL;
定义单元格颜色结构cellcolor type LVC_S_SCOL;
循环内表,当要设置单元格颜色所在的列字段colname要设置颜色时
fldname-FNAME =
‘
COLNAME
’
‘
COLNAME
’
fldname-COLOR-col =
‘
2
’
(颜色代码)
‘
2
’
(颜色代码)
fldname-COLOR-int =
‘
1
’
‘
1
’
fldname-COLOR-inv =
‘
0
’
。
转载于:https://www.cnblogs.com/senlinmu110/p/3802273.html