ABAPOOALV 隐藏列修改列标题添加图标列调整列位置

作者:ABAP猿 约 6 分钟阅读 更新日期:2025-03-02 1 年前更新 标签:ABAP, 开发
目录
ABAPOOALV 隐藏列修改列标题添加图标列调整列位置 - 封面图
ABAPOOALV 隐藏列修改列标题添加图标列调整列位置 - 封面图
ABAPOOALV 隐藏列修改列标题添加图标列调整列位置 - 封面图
ABAPOOALV 隐藏列修改列标题添加图标列调整列位置 - 封面图

Either run the day or the day runs you.

成 功的人主宰时间,失败的人被时间主宰。

ABAPOOALV 隐藏列修改列标题添加图标列调整列位置 - 封面图
ABAPOOALV 隐藏列修改列标题添加图标列调整列位置 - 封面图

1

程序效果

ABAPOOALV 隐藏列修改列标题添加图标列调整列位置 - 封面图
ABAPOOALV 隐藏列修改列标题添加图标列调整列位置 - 封面图

2

源码分享

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

TYPES

BEGIN OF gty_spfli_incl ,

snum TYPE i ,

icon TYPE icon_d ,

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 .

DATA gs_variant TYPE disvariant .

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

DATA go_alv TYPE REF TO cl_gui_alv_grid .

DATA gs_layout TYPE lvc_s_layo .

DATA gt_fieldcat TYPE lvc_t_fcat .

DATA gs_fieldcat TYPE lvc_s_fcat .

DATA gs_sort TYPE lvc_s_sort .

DATA gt_sort TYPE lvc_t_sort .

DATA gt_filter TYPE lvc_t_filt .

DATA gs_filter TYPE lvc_s_filt .

INITIALIZATION .

sy \- title = 'ABAP OOALV演示程序-公众号(ABAP猿)' .

gs_variant \- report = sy \- repid .

START-OF-SELECTION .

SELECT * FROM spfli INTO TABLE gt_spfli UP TO 30 ROWS . LOOP AT gt_spfli INTO gs_spfli .

gs_spfli \- snum = sy \- tabix .

CASE sy \- tabix .

WHEN 1 .

gs_spfli \- icon = '@5B@' .

WHEN 2 .

gs_spfli \- icon = '@5C@' .

WHEN 3 .

gs_spfli \- icon = '@5D@' .

WHEN OTHERS .

ENDCASE . MODIFY gt_spfli FROM gs_spfli . ENDLOOP .

CREATE OBJECT go_alv

EXPORTING

i_parent = cl_gui_container => default_screen .

DATA lo_evt_handler TYPE REF TO lcl_evt_handler .

CREATE OBJECT lo_evt_handler .

SET HANDLER

lo_evt_handler -> toolbar FOR go_alv ,

lo_evt_handler -> hotspot_click FOR go_alv ,

lo_evt_handler -> double_click FOR go_alv ,

lo_evt_handler -> before_user_command FOR go_alv ,

lo_evt_handler -> user_command FOR go_alv ,

lo_evt_handler -> after_user_command FOR go_alv .

CLEAR gs_layout .

gs_layout \- zebra = 'X' .

gs_layout \- cwidth_opt = 'X' .

gs_layout \- sel_mode = 'D' .

gs_layout \- keyhot = 'X' .

"添加排序

CLEAR gs_sort .

gs_sort \- spos = '1' .

gs_sort \- fieldname = 'CARRID' .

gs_sort \- subtot = 'X' .

gs_sort \- up = 'X' .

gs_sort \- down = '' .

APPEND gs_sort TO gt_sort .

"添加过滤

CLEAR gs_filter .

gs_filter \- fieldname = 'CARRID' .

gs_filter \- sign = 'E' .

gs_filter \- option = 'EQ' .

gs_filter \- low = 'JL' .

APPEND gs_filter TO gt_filter .

"字段目录

CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'

EXPORTING

i_structure_name = 'SPFLI'

CHANGING

ct_fieldcat = gt_fieldcat .

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

"添加输出列

CLEAR gs_fieldcat .

gs_fieldcat \- fieldname = 'SNUM' .

gs_fieldcat \- reptext = '序号' .

APPEND gs_fieldcat TO gt_fieldcat .

CLEAR gs_fieldcat .

gs_fieldcat \- fieldname = 'ICON' .

gs_fieldcat \- reptext = '图标' .

APPEND gs_fieldcat TO gt_fieldcat .

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

FIELD-SYMBOLS <fcat> LIKE gs_fieldcat .

LOOP AT gt_fieldcat ASSIGNING <fcat> .

CASE <fcat> \- fieldname .

WHEN 'DISTANCE' .

<fcat> \- do_sum = 'X' .

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

WHEN 'PERIOD' .

<fcat> \- no_out = 'X' . "不可见

<fcat> \- tech = 'X' . "不可用(技术列)

WHEN 'COUNTRYFR' .

<fcat> \- reptext = '起飞国家' .

<fcat> \- scrtext_s = '起飞国家' .

<fcat> \- scrtext_m = '起飞国家' .

<fcat> \- scrtext_l = '起飞国家' .

WHEN 'COUNTRYTO' .

<fcat> \- reptext = '到达国家' .

<fcat> \- scrtext_s = '到达国家' .

<fcat> \- scrtext_m = '到达国家' .

<fcat> \- scrtext_l = '到达国家' .

WHEN 'SNUM' .

<fcat> \- col_pos = 1 .

<fcat> \- just = 'C' .

WHEN 'ICON' .

<fcat> \- col_pos = 2 .

<fcat> \- icon = 'X' .

<fcat> \- just = 'C' .

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

WHEN OTHERS .

ENDCASE . ENDLOOP .
CALL METHOD go_alv -> set_table_for_first_display

EXPORTING

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

is_variant = gs_variant

i_save = 'A'

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

is_layout = gs_layout

CHANGING

it_outtab = gt_spfli

it_fieldcatalog = gt_fieldcat

it_sort = gt_sort

it_filter = gt_filter .

cl_abap_list_layout => suppress_toolbar ( ).

WRITE space .

3

AI解释

ABAPOOALV 隐藏列修改列标题添加图标列调整列位置 - 封面图
ABAPOOALV 隐藏列修改列标题添加图标列调整列位置 - 封面图

仅供参考

ABAPOOALV 隐藏列修改列标题添加图标列调整列位置 - 封面图
ABAPOOALV 隐藏列修改列标题添加图标列调整列位置 - 封面图

ABAP OOALV 增强功能演示

介绍:

这段ABAP代码在之前的OOALV演示程序基础上,增加了一些功能,包括管理布局、隐藏列、修改列标题、添加图标列、调整列位置等。我们将逐步解释每个部分的作用和目的。

1\. 数据和ALV对象准备:

在主程序的 ` START-OF-SELECTION ` 部分,我们对数据进行了预处理,给每一行数据添加了序号和图标。这里我们使用了一个新的结构 `

gty_spfli_incl ` 来扩展原有的 ` spfli ` 表,并通过 ` MODIFY ` 语句来更新内表 ` gt_spfli `

2\. 事件处理程序定义和实现:

事件处理程序的定义和实现部分没有变化,仍然包括了对热区点击、双击、工具栏点击等不同事件的处理方法。

3\. ALV显示设置与字段目录:

在ALV显示设置中,我们增加了一列显示序号和图标。在字段目录中,为新添加的列设置了相关属性,如列位置、是否可见、是否显示图标等。

4\. 布局管理:

通过 ` is_variant ` 和 ` i_save ` 参数,在 ` CALL METHOD

go_alv->set_table_for_first_display `

方法中添加了对ALV布局的管理。这样,用户在调整列宽、顺序等方面的个性化设置将被保存,并在下次打开时生效。

5\. 用户交互事件处理:

事件处理程序的方法中添加了消息输出,用于演示当用户与ALV进行交互时,相应的事件处理方法会被触发。这有助于理解用户在操作中所引发的事件。

通过这段代码,你可以学到如何在ABAP

OOALV中进行一些高级的界面定制,使得报表更加灵活和符合用户个性化需求。同时,你也能够理解如何通过管理布局来保存和应用用户的设置。

ABAPOOALV 隐藏列修改列标题添加图标列调整列位置 - 封面图
ABAPOOALV 隐藏列修改列标题添加图标列调整列位置 - 封面图
ABAPOOALV 隐藏列修改列标题添加图标列调整列位置 - 封面图
ABAPOOALV 隐藏列修改列标题添加图标列调整列位置 - 封面图

源码篇幅较长,后台回 复 " **20231113** " 获取

ABAPOOALV 隐藏列修改列标题添加图标列调整列位置 - 封面图
ABAPOOALV 隐藏列修改列标题添加图标列调整列位置 - 封面图

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

欢迎点赞、留言、分享

ABAPOOALV 隐藏列修改列标题添加图标列调整列位置 - 封面图
ABAPOOALV 隐藏列修改列标题添加图标列调整列位置 - 封面图
ABAPOOALV 隐藏列修改列标题添加图标列调整列位置 - 封面图
ABAPOOALV 隐藏列修改列标题添加图标列调整列位置 - 封面图
ABAPOOALV 隐藏列修改列标题添加图标列调整列位置 - 封面图
ABAPOOALV 隐藏列修改列标题添加图标列调整列位置 - 封面图
ABAPOOALV 隐藏列修改列标题添加图标列调整列位置 - 封面图
ABAPOOALV 隐藏列修改列标题添加图标列调整列位置 - 封面图

往期推荐

[ 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=2247493426&idx=1&sn=9238e91fcc56e3a23748361e04432922&chksm=cf0a33dcf87dbacabf7fa63a97a777e705deac0e0eed48e48090ba87c6d6d1793958051197ca&scene=21#wechat_redirect)

[ ABAP SALV-演示程序 源码分享

](https://mp.weixin.qq.com/s?__biz=Mzg3OTE2Njg0OQ==&mid=2247494081&idx=1&sn=671c4de5734c7131744f47fd6abeab65&chksm=cf0a3d2ff87db43943c9a773f2572b79df043fae880909bed6178a5c2e5a308cf16f39f75aba&scene=21#wechat_redirect)

ABAPOOALV 隐藏列修改列标题添加图标列调整列位置 - 封面图
ABAPOOALV 隐藏列修改列标题添加图标列调整列位置 - 封面图
ABAPOOALV 隐藏列修改列标题添加图标列调整列位置 - 封面图
ABAPOOALV 隐藏列修改列标题添加图标列调整列位置 - 封面图

点个 在看 你最好看

ABAP猿

关于作者:ABAP猿

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

来源说明:本文内容由「ABAPOOALV隐藏列修改列标题添加图标列调整列位置.md」整理生成,仅用于内部技术分享与学习交流。