点击上方 蓝字 关注我们
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模型中如何添加 列 颜色、 行 颜色以及 单元格
颜色。相信通过实际操作,你能迅速理解和掌握这些知识点。让我们一起动手尝试一下,看看如何实现这些功能吧!
功能效果
第 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 ).
"行、单元格颜色
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 .源码分享
BEGIN OF gty_spfli_incl ,
scol TYPE lvc_t_scol ,
END OF gty_spfli_incl .BEGIN OF gs_spfli .
INCLUDE TYPE spfli .
INCLUDE TYPE gty_spfli_incl .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 TO30 ROWS .
DATA go_salv TYPE REF TO cl_salv_table .
cl_salv_table => factory (IMPORTING
r_salv_table = go_salvCHANGING
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生成数据,以便查看演示效果;
• 以上纯属个人总结,如有纰漏请联系我,谢谢;
以上是今日分享,希望对你有所帮助~~~
欢迎点赞、留言、分享
往期推荐
[ 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)
点个 在看 你最好看