当该 ALV 上还使用了过滤器时,是否有一种简单的方法可以检索显示的 ALV 数据?
使用的 ALV 是CL_GUI_ALV_GRID. 向用户展示时,默认情况下会在其上放置一个过滤器。用户还有一个按钮来处理 ALV 中的数据。即使用户将自己的过滤器放在 ALV 上,我如何确保该过程仅适用于显示的数据?
例如:一个 ALV 是从一个有 10 行的 itab 创建的,但是因为在 ALV 上还有一个过滤器,所以只显示了 8 行。按下按钮时,我只想处理当前向用户显示的 8 行。
我曾尝试为此目的找到一个功能模块,但我只能找到一个适用于 ALV 中选定行的 FM。
编辑:此外,有一个方法叫做get_filtered_entries,但它只检索那些未显示的条目。使用它来翻译显示的条目将非常耗时。get_filtered_entries
提前致谢。
在显示 ALV 时,我在执行程序时收到崩溃报告。为了创建 ALV,我遵循了一些教程和内容,目前它看起来像这样:
TYPE-POOLS: slis.
*build field catalog
DATA: it_fieldcat TYPE slis_t_fieldcat_alv,
wa_fieldcat TYPE slis_fieldcat_alv,
repid TYPE sy-repid.
REFRESH it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-reptext_ddic = 'Table ID'.
wa_fieldcat-fieldname = 'table_id'.
wa_fieldcat-tabname = 'lt_where_used_data_of_coll'.
wa_fieldcat-outputlen = '18'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-reptext_ddic = 'Table Description'.
wa_fieldcat-fieldname = 'table_description'.
wa_fieldcat-tabname = 'lt_where_used_data_of_coll'.
wa_fieldcat-outputlen = '40'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-reptext_ddic = 'Numer of Records Found'.
wa_fieldcat-fieldname = 'nr_of_records'.
wa_fieldcat-tabname = 'lt_where_used_data_of_coll'.
wa_fieldcat-outputlen = '30'.
APPEND wa_fieldcat TO it_fieldcat. …Run Code Online (Sandbox Code Playgroud)