ABAP ALV中的颜色设置
作者:互联网
行颜色及单元格颜色的设置需要在ALV的显示内表中设置两个字段:
DATA: BEGIN OF gt_out OCCURS 0.
INCLUDE STRUCTURE sflight.
DATA: rowcolor(4) TYPE c,"行颜色设置
cellcolor TYPE lvc_t_scol."单元格颜色设置
DATA: END OF gt_out.
然后在布局中设置:
DATA gs_layout TYPE lvc_s_layo.
gs_layout-info_fname = 'ROWCOLOR'."行颜色字段
gs_layout-ctab_fname = 'CELLCOLOR'."单元格颜色字段
最后在ALV显示之前根据需求进行颜色的设定:
DATA gs_out_temp LIKE LINE OF gt_out.
DATA ls_cellcolor TYPE lvc_s_scol.
LOOP AT gt_out.
gs_out_temp = gt_out.
"行颜色设置
AT FIRST.
gs_out_temp-rowcolor = 'C310'.
ENDAT.
AT LAST.
gs_out_temp-rowcolor = 'C710'.
ENDAT.
"单元格颜色设置
IF gt_out-seatsocc_f < 20.
ls_cellcolor-fname = 'SEATSOCC_F'.
ls_cellcolor-color-col = '3'.
ls_cellcolor-color-int = '1'.
APPEND ls_cellcolor TO gs_out_temp-cellcolor.
ENDIF.
MODIFY gt_out FROM gs_out_temp.
ENDLOOP.
对于列颜色的设置就比较简单了,直接在gt_fieldcat中做处理即可:
DATA: gt_fieldcat TYPE lvc_t_fcat,
ls_fieldcat TYPE lvc_s_fcat.
LOOP AT gt_fieldcat INTO ls_fieldcat.
IF ls_fieldcat-fieldname = 'PAYMENTSUM'."为这个列设置颜色
ls_fieldcat-emphasize = 'C510'.
MODIFY gt_fieldcat FROM ls_fieldcat.
ENDIF.
ENDLOOP.
另外附上SAP的颜色编码:SAP中的颜色编码是由4位Cxyz组成的
C:color的简写,颜色编码均以C开头
x:标准色码,SAP中一共有7个标准色
y:反转颜色,启用/关闭 1/0
z:增强颜色,启用/关闭 1/0
标准色码一览表
X | 颜色 | 主要用途 |
---|---|---|
1 | 灰蓝色 | 抬头、标题栏 |
2 | 浅灰色 | 列表内容 |
3 | 黄色 | 汇总 |
4 | 蓝色 | 关键字 |
5 | 绿色 | 正确 |
6 | 红色 | 错误 |
7 | 橙色 | 控制 |
搜索
复制
标签:gt,颜色,fieldcat,ABAP,ls,ALV,gs,out 来源: https://www.cnblogs.com/jin387/p/16073099.html