用户进行更改后,ALV Grid会回读输出

时间:2019-02-19 09:53:43

标签: sap abap

我有一个报告,该报告通过ALV网格输出内部表的数据。输出本身包含一些信息和每行两个复选框。用户可以根据需要选中这些框,现在我需要重新阅读表,以了解选中了哪些框。根据选中的两个框中的哪个,相应的行将在之后进行不同的处理。

我已经尝试过方法get_actual_view(它不知道如何使用正确)和方法get_selected_rows,它似乎获得了用户选择的行的索引,但没有内容。

在用户选中框后,如何才能读回表(并按一个按钮以继续,这将触发报告中的编码以读取数据,对其进行处理并将其写回到网格中)?

2 个答案:

答案 0 :(得分:1)

您需要调用CHECK_CHANGED_DATA的方法 CL_GUI_ALV_GRID ,将输入从ALV网格转移到内部表(该方法适用于ALV中的所有输入字段ALV,即不限于复选框。

答案 1 :(得分:-1)

最好的方法是使用 CL_GUI_ALV_GRID 在ALV中显示输出。

要更改ALV网格,

您必须注册事件 DATA_CHANGED ,它将在数据更改的情况下帮助您编写代码。

对于选定的行,您必须在itab中创建复选框字段,这将帮助您驱动选定的行。

如果要将屏幕更改转移到itab,则必须在 PAI事件时调用方法 check_changed_data 将屏幕更改转移到itab。

在某些情况下,如果您想知道行内容的任何更改,则必须再创建一个长度为1的字段 data_change 字符类型。如果存在,可以在适当的事件中标记此字段Itab内容的更改。

致谢

乌马尔·阿卜杜拉