ABAP SALV-隐藏列、修改列标题、添加图标列、调整列位置
世界杯比赛时间表 2025-08-06 07:21:37
01 功能说明
上篇:ABAP SALV-选择模式、触发事件
本系列将通过模拟用户与开发者之间的对话场景,来逐步演示SALV的使用。在本篇中,我们将延续前文内容,解决用户最新提出的需求。
如果你已经 完成了前13步 ,那么你对整个SALV模型的功能应该有了全面的了解,这将为后续的学习和操作带来便利。细心的小伙伴可能已经注意到,我在每一步代码下都留下了省略号,这意味着除了已实现的功能外,我们还可以通过ALV控制对象来实现更多功能。
接下来,我们将探讨如何隐藏列、修改列标题、添加图标列以及调整列位置。 赶紧动手试一试,以便更好地掌握这些新的知识点。
02 功能效果
第14天 用户说:隐藏列、修改列标题
不显示集团列,起飞国家、到达国家列标题调整。
IF p_day14 = 'X'.
"列不可见、不可用
lo_column ?= lo_columns->get_column( columnname = 'MANDT' ).
lo_column->set_visible( 'X' ). "不可见
lo_column->set_technical( 'X' ). "技术列(布局也不可见)
"列标题修改
lo_column ?= lo_columns->get_column( columnname = 'COUNTRYFR' ).
lo_column->set_short_text( '起飞国家' ).
lo_column->set_medium_text( '起飞国家' ).
lo_column->set_long_text( '起飞国家' ).
lo_column ?= lo_columns->get_column( columnname = 'COUNTRYTO' ).
lo_column->set_short_text( '到达国家' ).
lo_column->set_medium_text( '到达国家' ).
lo_column->set_long_text( '到达国家' ).
ENDIF.
第15天 用户说:图标列、调整列位置
新增序号列、图标列,要求:居中显示,并调整到第头2列进行显示。
IF p_day15 = 'X'.
"调整列位置
lo_columns->set_column_position( columnname = 'SNUM' position = 1 ).
lo_columns->set_column_position( columnname = 'ICON' position = 2 ).
"取消关键列
lo_column ?= lo_columns->get_column( columnname = 'CARRID' ).
lo_column->set_key( '' ).
lo_column ?= lo_columns->get_column( columnname = 'CONNID' ).
lo_column->set_key( '' ).
lo_column ?= lo_columns->get_column( columnname = 'SNUM' ).
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 ?= lo_columns->get_column( columnname = 'ICON' ).
lo_column->set_short_text