ABAPSALV 颜色列行单元格

作者:ABAP猿 约 6 分钟阅读 更新日期:2025-03-02 1 年前更新 标签:ABAP, 开发
目录
ABAPSALV 颜色列行单元格 - 封面图
ABAPSALV 颜色列行单元格 - 封面图
ABAPSALV 颜色列行单元格 - 封面图
ABAPSALV 颜色列行单元格 - 封面图

点击上方 蓝字 关注我们

ABAPSALV 颜色列行单元格 - 封面图
ABAPSALV 颜色列行单元格 - 封面图
ABAPSALV 颜色列行单元格 - 封面图
ABAPSALV 颜色列行单元格 - 封面图

Eloquent speech is not from lip to ear,

but rather from heart to heart.

在有说服力的演讲,讯息的传递不是由口到耳,而是由心到心。

功能说明

上篇: [ ABAP SALV-固定列、鼠标悬停文本

](http://mp.weixin.qq.com/s?__biz=Mzg3OTE2Njg0OQ==&mid=2247493872&idx=1&sn=1fa17646f6b0480b58fa103bba4b92c0&chksm=cf0a3c1ef87db508e62dfeac62f0366048c9e6727463da42c700af5716cbb6b79df0b34d872a&scene=21#wechat_redirect)

本系列将通过模拟用户与开发者之间的对话场景, 来逐步演示SALV的使用。在本篇中,我们将延续前文内容,解决用户最新提出的需求。

今天我们将探讨SALV模型中如何添加 列 颜色、 行 颜色以及 单元格

颜色。相信通过实际操作,你能迅速理解和掌握这些知识点。让我们一起动手尝试一下,看看如何实现这些功能吧!

功能效果

ABAPSALV 颜色列行单元格 - 封面图
ABAPSALV 颜色列行单元格 - 封面图

第 18 天 用户说

启程、到达时间整列设置颜色,图标行按需分别设置颜色。

"列颜色

DATA ls_color TYPE lvc_s_colo .

ls_color \- col = 5 . ls_color \- int = 1 . ls_color \- inv = 0 .
lo_column ?= lo_columns -> get_column ( columnname = 'DEPTIME' ).

lo_column -> set_color ( ls_color ).

lo_column ?= lo_columns -> get_column ( columnname = 'ARRTIME' ).

lo_column -> set_color ( ls_color ).

ABAPSALV 颜色列行单元格 - 封面图
ABAPSALV 颜色列行单元格 - 封面图

"行、单元格颜色

lo_columns -> set_color_column ( 'SCOL' ).

DATA ls_scol TYPE lvc_s_scol .

DATA lt_scol TYPE lvc_t_scol .

LOOP AT gt_spfli INTO gs_spfli .

CASE sy \- tabix .

WHEN 1 .

"行颜色

CLEAR ls_scol .

ls_scol \- color \- col = 5 . ls_scol \- color \- int = 1 . ls_scol \- color \- inv = 0 .
ls_scol \- fname = '' . ls_scol \- nokeycol = '' . APPEND ls_scol TO gs_spfli \- scol .

WHEN 2 .

• "行颜色(覆盖Key颜色)

CLEAR ls_scol .

ls_scol \- color \- col = 6 . ls_scol \- color \- int = 1 . ls_scol \- color \- inv = 0 .
ls_scol \- fname = '' . ls_scol \- nokeycol = 'X' . "避免被Key颜色覆盖 APPEND ls_scol TO gs_spfli \- scol .

WHEN 3 .

"单元格颜色

CLEAR ls_scol .

ls_scol \- color \- col = 3 . ls_scol \- color \- int = 1 . ls_scol \- color \- inv = 0 .
ls_scol \- fname = 'COUNTRYFR' . ls_scol \- nokeycol = 'X' . APPEND ls_scol TO gs_spfli \- scol .
ls_scol \- fname = 'COUNTRYTO' . APPEND ls_scol TO gs_spfli \- scol .
ls_scol \- fname = 'FLTIME' . APPEND ls_scol TO gs_spfli \- scol .

WHEN OTHERS .

ENDCASE . MODIFY gt_spfli FROM gs_spfli . ENDLOOP .
ABAPSALV 颜色列行单元格 - 封面图
ABAPSALV 颜色列行单元格 - 封面图

源码分享

TYPES

BEGIN OF gty_spfli_incl ,

scol TYPE lvc_t_scol ,

END OF gty_spfli_incl .

DATA

BEGIN OF gs_spfli .

INCLUDE TYPE spfli . INCLUDE TYPE gty_spfli_incl .

DATA

END OF gs_spfli ,

gt_spfli LIKE TABLE OF gs_spfli .

START-OF-SELECTION .

SELECT * FROM spfli INTO CORRESPONDING FIELDS OF TABLE gt_spfli UP TO

30 ROWS .

DATA go_salv TYPE REF TO cl_salv_table .

cl_salv_table => factory (

IMPORTING

r_salv_table = go_salv

CHANGING

t_table = gt_spfli ).

*------------------------------------*

DATA lo_display TYPE REF TO cl_salv_display_settings .

lo_display = go_salv -> get_display_settings ( ).

lo_display -> set_list_header ( 'ABAP SALV演示程序-公众号(ABAP猿)' ).

lo_display -> set_striped_pattern ( 'X' ).

*------------------------------------*

DATA lo_functions TYPE REF TO cl_salv_functions .

lo_functions = go_salv -> get_functions ( ).

lo_functions -> set_all ( 'X' ).

*------------------------------------*

DATA lo_columns TYPE REF TO cl_salv_columns_table .

DATA lo_column TYPE REF TO cl_salv_column_table .

lo_columns = go_salv -> get_columns ( ).

lo_columns -> set_optimize ( 'X' ).

"列颜色

DATA ls_color TYPE lvc_s_colo .

ls_color \- col = 5 . ls_color \- int = 1 . ls_color \- inv = 0 .
lo_column ?= lo_columns -> get_column ( columnname = 'DEPTIME' ).

lo_column -> set_color ( ls_color ).

lo_column ?= lo_columns -> get_column ( columnname = 'ARRTIME' ).

lo_column -> set_color ( ls_color ).

"行、单元格颜色

lo_columns -> set_color_column ( 'SCOL' ).

DATA ls_scol TYPE lvc_s_scol .

DATA lt_scol TYPE lvc_t_scol .

LOOP AT gt_spfli INTO gs_spfli .

CASE sy \- tabix .

WHEN 1 .

"行颜色

CLEAR ls_scol .

ls_scol \- color \- col = 5 . ls_scol \- color \- int = 1 . ls_scol \- color \- inv = 0 .
ls_scol \- fname = '' . ls_scol \- nokeycol = '' . APPEND ls_scol TO gs_spfli \- scol .

WHEN 2 .

"行颜色(覆盖Key颜色)

CLEAR ls_scol .

ls_scol \- color \- col = 6 . ls_scol \- color \- int = 1 . ls_scol \- color \- inv = 0 .
ls_scol \- fname = '' . ls_scol \- nokeycol = 'X' . "避免被Key颜色覆盖 APPEND ls_scol TO gs_spfli \- scol .

WHEN 3 .

"单元格颜色

CLEAR ls_scol .

ls_scol \- color \- col = 3 . ls_scol \- color \- int = 1 . ls_scol \- color \- inv = 0 .
ls_scol \- fname = 'COUNTRYFR' . ls_scol \- nokeycol = 'X' . APPEND ls_scol TO gs_spfli \- scol .
ls_scol \- fname = 'COUNTRYTO' . APPEND ls_scol TO gs_spfli \- scol .
ls_scol \- fname = 'FLTIME' . APPEND ls_scol TO gs_spfli \- scol .

WHEN OTHERS .

ENDCASE . MODIFY gt_spfli FROM gs_spfli . ENDLOOP .

*------------------------------------*

go_salv -> display ( ).

**小贴士:**

• **** 可使用BC_DATA_GEN生成数据,以便查看演示效果;

• 以上纯属个人总结,如有纰漏请联系我,谢谢;

以上是今日分享,希望对你有所帮助~~~

欢迎点赞、留言、分享

ABAPSALV 颜色列行单元格 - 封面图
ABAPSALV 颜色列行单元格 - 封面图
ABAPSALV 颜色列行单元格 - 封面图
ABAPSALV 颜色列行单元格 - 封面图
ABAPSALV 颜色列行单元格 - 封面图
ABAPSALV 颜色列行单元格 - 封面图
ABAPSALV 颜色列行单元格 - 封面图
ABAPSALV 颜色列行单元格 - 封面图

往期推荐

[ ABAP SALV-合计、小计

](https://mp.weixin.qq.com/s?__biz=Mzg3OTE2Njg0OQ==&mid=2247493458&idx=1&sn=d385083654a1accb3a062f0379e6ff36&chksm=cf0a33bcf87dbaaa335e530eea8f50e75bc5544a43095c27d685a39aad1414ddec883cc2131e&scene=21#wechat_redirect)

[ ABAP SALV-选择模式、触发事件

](https://mp.weixin.qq.com/s?__biz=Mzg3OTE2Njg0OQ==&mid=2247493599&idx=1&sn=646dad86bd6eebe55dde0e7e21378c1b&chksm=cf0a3331f87dba27b8113eb06f62127c18e98e889e1366269e86e7201367458e94f22fe6c6e5&scene=21#wechat_redirect)

[ ABAP SALV-隐藏列、修改列标题、添加图标列、调整列位置

](https://mp.weixin.qq.com/s?__biz=Mzg3OTE2Njg0OQ==&mid=2247493824&idx=1&sn=d55a310f49f4b5cd0212c0b68a25787d&chksm=cf0a3c2ef87db5385a04d9249869b51f6b1bd02921dd31754266817e68f14d74c23db01ec974&scene=21#wechat_redirect)

[ ABAP SALV-固定列、鼠标悬停文本

](https://mp.weixin.qq.com/s?__biz=Mzg3OTE2Njg0OQ==&mid=2247493872&idx=1&sn=1fa17646f6b0480b58fa103bba4b92c0&chksm=cf0a3c1ef87db508e62dfeac62f0366048c9e6727463da42c700af5716cbb6b79df0b34d872a&scene=21#wechat_redirect)

ABAPSALV 颜色列行单元格 - 封面图
ABAPSALV 颜色列行单元格 - 封面图
ABAPSALV 颜色列行单元格 - 封面图
ABAPSALV 颜色列行单元格 - 封面图

点个 在看 你最好看

ABAP猿

关于作者:ABAP猿

企业信息化与 SAP 技术顾问,长期专注 SAP ABAP、FI/CO、MM、SD 等模块的技术分享与实战经验总结。查看更多介绍

来源说明:本文内容由「ABAPSALV颜色列行单元格.md」整理生成,仅用于内部技术分享与学习交流。