SAP ALV根据筛选后的数据全选

1.业务背景

使用过滤器过滤数据后,当前点击全选按钮时,明细数据需要显示对应的数据
在这里插入图片描述

2.解决办法

本文区分是否有过滤条件,示例代码如下
DATA:lt_filter TYPE lvc_t_fidx.

CALL METHOD go_grid_header->get_filtered_entries
IMPORTING
et_filtered_entries = lt_filter.

IF lt_filter IS NOT INITIAL.

IF e_ucomm = ‘ZALL’.
"全选情况下,先将所有数据不选中
MODIFY gt_out1 FROM VALUE #( sel = ‘’ ) TRANSPORTING sel WHERE vbeln IS NOT INITIAL.
ENDIF.

LOOP AT gt_out1 ASSIGNING FIELD-SYMBOL(<lfs_out1>).

READ TABLE lt_filter TRANSPORTING NO FIELDS WITH KEY table_line = sy-tabix.
IF sy-subrc <> 0.
IF e_ucomm = ‘ZALL’.
<lfs_out1>-sel = ‘X’. "需要选中的行
ELSEIF e_ucomm = ‘ZSAL’.
<lfs_out1>-sel = ‘’. "需要取消选中的行
ENDIF.
ENDIF.

ENDLOOP.

ELSE.
IF e_ucomm = ‘ZALL’.
MODIFY gt_out1 FROM VALUE #( sel = ‘X’ ) TRANSPORTING sel WHERE vbeln IS NOT INITIAL.
ELSEIF e_ucomm = ‘ZSAL’.
MODIFY gt_out1 FROM VALUE #( sel = ‘’ ) TRANSPORTING sel WHERE vbeln IS NOT INITIAL.
ENDIF.
ENDIF.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值