get_selected_rows 来自处理程序 PAI 逻辑之后的 alv
get_selected_rows from alv after handler PAI logic
我在屏幕上的容器中有一个 ALV 0100
。它是通过 class CL_SALV_TABLE
.
创建的
问题是在按下屏幕上的按钮(屏幕截图中的 2)后,我无法通过 go_alv_dms->get_selections( )->get_selected_rows( )
获取选定的行。
如果按钮位于 ALV 状态栏(屏幕截图中的 1),我可以毫无问题地访问选定的行。似乎在 ALV 之外按下按钮会清除它的选择。
显示ALV时注册选择:
...
lo_selections = go_alv_dms->get_selections( ).
lo_selections->set_selection_mode( if_salv_c_selection_mode=>row_column ).
lo_events = go_alv_dms->get_event( ).
CREATE OBJECT go_handler.
SET HANDLER go_handler->on_user_command2 FOR lo_events.
...
屏幕按钮逻辑PAI:
go_handler->on_user_command2( gv_ok_0100 ).
方法on_user_command2
:
case gv_ok_0100.
when 'OK'.
...
lt_rows = go_alv_dms->get_selections( )->get_selected_rows( ).
...
ENDCASE.
听了同事的意见,上网找了答案,得出的结论是,这是classCL_SALV_TABLE
限制。我在 class CL_ALV_GRID
上重写了程序,我赚到了。我喜欢CL_SALV_TABLE
,如果有人反驳我的话我会很高兴。
DATA gr_alv TYPE REF TO cl_salv_table.
DATA it_rows TYPE salv_t_row.
...
gr_alv->get_metadata( ). " Call this method before getting selected rows
it_rows = gr_alv->get_selections( )->get_selected_rows( ).
参考:https://answers.sap.com/questions/4693234/getselectedrows-returns-nothing.html
我在屏幕上的容器中有一个 ALV 0100
。它是通过 class CL_SALV_TABLE
.
问题是在按下屏幕上的按钮(屏幕截图中的 2)后,我无法通过 go_alv_dms->get_selections( )->get_selected_rows( )
获取选定的行。
如果按钮位于 ALV 状态栏(屏幕截图中的 1),我可以毫无问题地访问选定的行。似乎在 ALV 之外按下按钮会清除它的选择。
显示ALV时注册选择:
...
lo_selections = go_alv_dms->get_selections( ).
lo_selections->set_selection_mode( if_salv_c_selection_mode=>row_column ).
lo_events = go_alv_dms->get_event( ).
CREATE OBJECT go_handler.
SET HANDLER go_handler->on_user_command2 FOR lo_events.
...
屏幕按钮逻辑PAI:
go_handler->on_user_command2( gv_ok_0100 ).
方法on_user_command2
:
case gv_ok_0100.
when 'OK'.
...
lt_rows = go_alv_dms->get_selections( )->get_selected_rows( ).
...
ENDCASE.
听了同事的意见,上网找了答案,得出的结论是,这是classCL_SALV_TABLE
限制。我在 class CL_ALV_GRID
上重写了程序,我赚到了。我喜欢CL_SALV_TABLE
,如果有人反驳我的话我会很高兴。
DATA gr_alv TYPE REF TO cl_salv_table.
DATA it_rows TYPE salv_t_row.
...
gr_alv->get_metadata( ). " Call this method before getting selected rows
it_rows = gr_alv->get_selections( )->get_selected_rows( ).
参考:https://answers.sap.com/questions/4693234/getselectedrows-returns-nothing.html