ABAPOOALV 排序过滤

作者:ABAP猿 约 5 分钟阅读 更新日期:2025-03-02 1 年前更新 标签:ABAP, 开发
ABAPOOALV 排序过滤 - 封面图
ABAPOOALV 排序过滤 - 封面图
ABAPOOALV 排序过滤 - 封面图
ABAPOOALV 排序过滤 - 封面图

T he road to Easy Street goes through the sewer.

前往「康庄大道」的路途中,你得先经历过 下水道。

ABAPOOALV 排序过滤 - 封面图
ABAPOOALV 排序过滤 - 封面图

1

程序效果

ABAPOOALV 排序过滤 - 封面图
ABAPOOALV 排序过滤 - 封面图

2

源码分享

REPORT zooalv_demo NO STANDARD PAGE HEADING .

DATA gt_spfli TYPE TABLE OF spfli .

DATA go_alv TYPE REF TO cl_gui_alv_grid .

DATA gs_layout TYPE lvc_s_layo .

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

START-OF-SELECTION .

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

CREATE OBJECT go_alv

EXPORTING

i_parent = cl_gui_container => default_screen .

CLEAR gs_layout .

gs_layout \- zebra = 'X' .

gs_layout \- cwidth_opt = 'X' .

"添加排序

CLEAR gs_sort .

gs_sort \- spos = '1' .

gs_sort \- fieldname = 'CARRID' .

gs_sort \- up = '' .

gs_sort \- down = 'X' .

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 METHOD go_alv -> set_table_for_first_display

EXPORTING

is_layout = gs_layout

i_structure_name = 'SPFLI'

CHANGING

it_outtab = gt_spfli

it_sort = gt_sort

it_filter = gt_filter .

cl_abap_list_layout => suppress_toolbar ( ).

WRITE space .

3

AI解释

ABAPOOALV 排序过滤 - 封面图
ABAPOOALV 排序过滤 - 封面图

仅供参考

ABAPOOALV 排序过滤 - 封面图
ABAPOOALV 排序过滤 - 封面图

这段ABAP代码主要是在使用ABAP Object Oriented Language (OO) 和 ALV (ABAP List Viewer)

来创建一个数据表格的展示,并对表格进行排序和过滤。

以下是对这段代码的逐行解释: 首先,定义了四个变量: gs_sort:类型为 lvc_s_sort,是排序设置的数据类型。 gt_sort:类型为

lvc_t_sort,用于保存多个排序设置的数据类型。 gt_filter:类型为 lvc_t_filt,用于保存多个过滤设置的数据类型。

gs_filter:类型为 lvc_s_filt,是过滤设置的数据类型。

接下来,代码添加了排序设置: 使用 CLEAR 命令清空 gs_sort 变量。 设置排序的位置(spos)为 '1',表示在第一个位置进行排序。

设置排序的字段名(fieldname)为 'CARRID',表示按照 'CARRID' 字段进行排序。 设置排序方向(up 和 down),其中 up

为空字符串(''),表示升序;down 为 'X',表示降序。 使用 APPEND 命令将 gs_sort 添加到 gt_sort

中,以保存多个排序设置。

然后,代码添加了过滤设置: 使用 CLEAR 命令清空 gs_filter 变量。 设置过滤字段名(fieldname)为 'CARRID',表示只显示

'CARRID' 字段匹配的数据。 设置过滤符(sign)为 'E',表示等于('E')。 设置过滤选项(option)为

'EQ',表示等于('EQ')。 设置过滤的低值(low)为 'JL',表示只显示 'CARRID' 字段等于 'JL' 的数据。 使用 APPEND

命令将 gs_filter 添加到 gt_filter 中,以保存多个过滤设置。

最后,代码调用了 go_alv->set_table_for_first_display 方法,并传递了以下参数:

is_layout:指定表格的布局(gs_layout)。 i_structure_name:指定表格的数据结构名称为 'SPFLI'。

it_outtab:指定输出的表格数据(gt_spfli)。 it_sort:指定排序设置(gt_sort)。

it_filter:指定过滤设置(gt_filter)。

这段代码的主要目的是使用ABAP和ALV工具创建一个数据表格,并对表格进行排序和过滤操作。根据spfli表的内容和你的业务需求,具体的业务逻辑可能会有所不同。

ABAPOOALV 排序过滤 - 封面图
ABAPOOALV 排序过滤 - 封面图

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

欢迎点赞、留言、分享

ABAPOOALV 排序过滤 - 封面图
ABAPOOALV 排序过滤 - 封面图
ABAPOOALV 排序过滤 - 封面图
ABAPOOALV 排序过滤 - 封面图
ABAPOOALV 排序过滤 - 封面图
ABAPOOALV 排序过滤 - 封面图
ABAPOOALV 排序过滤 - 封面图
ABAPOOALV 排序过滤 - 封面图

往期推荐

[ ABAP SALV-排序、过滤

](https://mp.weixin.qq.com/s?__biz=Mzg3OTE2Njg0OQ==&mid=2247493435&idx=1&sn=f4edc084193c7cd518bdf75b719f5543&chksm=cf0a33d5f87dbac30cbeff6ee4cf2333f6dc977e5e25e4cab22d17abdeb011ea750ecdb45015&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」整理生成,仅用于内部技术分享与学习交流。