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.
1万+

被折叠的 条评论
为什么被折叠?



