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