我有一个报告,该报告通过ALV网格输出内部表的数据。输出本身包含一些信息和每行两个复选框。用户可以根据需要选中这些框,现在我需要重新阅读表,以了解选中了哪些框。根据选中的两个框中的哪个,相应的行将在之后进行不同的处理。
我已经尝试过方法get_actual_view
(它不知道如何使用正确)和方法get_selected_rows
,它似乎获得了用户选择的行的索引,但没有内容。
在用户选中框后,如何才能读回表(并按一个按钮以继续,这将触发报告中的编码以读取数据,对其进行处理并将其写回到网格中)?
答案 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内容的更改。
致谢
乌马尔·阿卜杜拉