ABAPSALV 样式列行单元格

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

点击上方 蓝字 关注我们

ABAPSALV 样式列行单元格 - 封面图
ABAPSALV 样式列行单元格 - 封面图
ABAPSALV 样式列行单元格 - 封面图
ABAPSALV 样式列行单元格 - 封面图

The harder you work, the luckier you get.

越努力就能越幸运。

功能说明

上篇: [ ABAP SALV-颜色(列、行、单元格)

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

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

今天我们将探讨SALV模型中如何添加 单元格样式 ?相信通过实际操作,你能迅速理解和掌握这些知识点。让我们一起动手尝试一下,看看如何实现这些功能吧!

功能效果

ABAPSALV 样式列行单元格 - 封面图
ABAPSALV 样式列行单元格 - 封面图

第 19 天 用户说

添加复选列方便选择,按需设置单元格样式。

"列样式(checkbox hotspot)

lo_columns -> set_column_position ( columnname = 'CBOX' position = 1

).

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

lo_column -> set_short_text ( '选择' ).

lo_column -> set_medium_text ( '选择' ).

lo_column -> set_long_text ( '选择' ).

lo_column -> set_alignment ( if_salv_c_alignment => centered ). lo_column -> set_cell_type ( if_salv_c_cell_type => checkbox_hotspot ).
ABAPSALV 样式列行单元格 - 封面图
ABAPSALV 样式列行单元格 - 封面图

"行、单元格样式

DATA ls_ctyp TYPE salv_s_int4_column .

lo_columns -> set_cell_type_column ( 'CTYP' ).

LOOP AT gt_spfli INTO gs_spfli .

CASE sy \- tabix .

WHEN 4 .

"行样式(button)

CLEAR ls_ctyp .

ls_ctyp \- columnname = '' . ls_ctyp \- value = if_salv_c_cell_type => button . APPEND ls_ctyp TO gs_spfli \- ctyp .

WHEN 5 .

"行样式(hotspot)

CLEAR ls_ctyp .

ls_ctyp \- columnname = '' . ls_ctyp \- value = if_salv_c_cell_type => hotspot . APPEND ls_ctyp TO gs_spfli \- ctyp .

WHEN 6 .

"单元格样式(button + hotspot)

CLEAR ls_ctyp .

ls_ctyp \- columnname = 'COUNTRYFR' . ls_ctyp \- value = if_salv_c_cell_type => button . APPEND ls_ctyp TO gs_spfli \- ctyp .

CLEAR ls_ctyp .

ls_ctyp \- columnname = 'COUNTRYTO' . ls_ctyp \- value = if_salv_c_cell_type => hotspot . APPEND ls_ctyp TO gs_spfli \- ctyp .

WHEN OTHERS .

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

源码分享

TYPES

BEGIN OF gty_spfli_incl ,

cbox TYPE c ,

ctyp TYPE salv_t_int4_column ,

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' ).

"列样式(checkbox hotspot)

lo_columns -> set_column_position ( columnname = 'CBOX' position = 1

).

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

lo_column -> set_short_text ( '选择' ).

lo_column -> set_medium_text ( '选择' ).

lo_column -> set_long_text ( '选择' ).

lo_column -> set_alignment ( if_salv_c_alignment => centered ). lo_column -> set_cell_type ( if_salv_c_cell_type => checkbox_hotspot ).

"行、单元格样式

DATA ls_ctyp TYPE salv_s_int4_column .

lo_columns -> set_cell_type_column ( 'CTYP' ).

LOOP AT gt_spfli INTO gs_spfli .

CASE sy \- tabix .

WHEN 4 .

"行样式(button)

CLEAR ls_ctyp .

ls_ctyp \- columnname = '' . ls_ctyp \- value = if_salv_c_cell_type => button . APPEND ls_ctyp TO gs_spfli \- ctyp .

WHEN 5 .

"行样式(hotspot)

CLEAR ls_ctyp .

ls_ctyp \- columnname = '' . ls_ctyp \- value = if_salv_c_cell_type => hotspot . APPEND ls_ctyp TO gs_spfli \- ctyp .

WHEN 6 .

"单元格样式(button + hotspot)

CLEAR ls_ctyp .

ls_ctyp \- columnname = 'COUNTRYFR' . ls_ctyp \- value = if_salv_c_cell_type => button . APPEND ls_ctyp TO gs_spfli \- ctyp .

CLEAR ls_ctyp .

ls_ctyp \- columnname = 'COUNTRYTO' . ls_ctyp \- value = if_salv_c_cell_type => hotspot . APPEND ls_ctyp TO gs_spfli \- ctyp .

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=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)

[ ABAP SALV-颜色(列、行、单元格)

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

ABAPSALV 样式列行单元格 - 封面图
ABAPSALV 样式列行单元格 - 封面图
ABAPSALV 样式列行单元格 - 封面图
ABAPSALV 样式列行单元格 - 封面图

点个 在看 你最好看

ABAP猿

关于作者:ABAP猿

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

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