gpt4 book ai didi

filter - 从 ALV 中检索过滤后的数据

转载 作者:行者123 更新时间:2023-12-02 12:24:41 27 4
gpt4 key购买 nike

当 ALV 上还使用了过滤器时,是否有一种简单的方法来检索显示的 ALV 数据?

使用的ALV是CL_GUI_ALV_GRID的对象。当向用户显示时,默认会在其上放置一个过滤器。用户还有一个按钮可以处理 ALV 中的数据。即使用户在 ALV 上放置了自己的过滤器,如何确保该过程仅适用于显示的数据?

例如:从具有 10 行的 itab 创建 ALV,但由于 ALV 上还传递了一个过滤器,因此仅显示 8 行。当按下按钮时,我只想处理当前向用户显示的 8 行。

我尝试为此目的寻找一个功能模块,但我只能找到一个与 ALV 中所选行一起使用的 FM。

编辑:此外,还有一个名为 get_filtered_entries 的方法,但它仅检索那些未显示的条目。使用此功能来翻译显示的条目将非常耗时。 get_filtered_entries

提前致谢。

最佳答案

GET_FILTERED_ENTRIES 返回排除行索引的表。您只需在处理中跳过这些即可。

" Copy original table
DATA(lit_buffer) = it_out[].

" Get excluded rows
o_grid->get_filtered_entries(
IMPORTING
et_filtered_entries = DATA(lit_index)
).

" Reverse order to keep correct indizes; thnx futu
SORT lit_index DESCENDING.

" Remove excluded rows from buffer
LOOP AT lit_index ASSIGNING FIELD-SYMBOL(<index>).
DELETE lit_buffer INDEX <index>.
ENDLOOP.
<小时/>

编辑:我调试了一点cl_gui_alv_grid,看起来根本不存在原始表的过滤版本。这些行经过过滤、排序、分组并立即转移到单元格表中。看起来几乎不可能在不影响性能的情况下获取显示的行。

关于filter - 从 ALV 中检索过滤后的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46298421/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com