解决ALV刷新后选中状态丢失的办法

论坛 期权论坛 脚本     
匿名技术用户   2021-1-4 16:12   11   0

在ALV的data_change事件中刷新了ALV,导致每次更改数据时丢失了ALV的选中状态,导致后续

保存的时候使用get_selected_rows方法时丢失数据,导致ALV编辑后更新失败。

解决方法:每次更新后重新用set_selected_rows方法填充选中行。

还有一种方法就是用CHECKBOX,这要看用户使用习惯。

  CALL METHOD g_grid->get_selected_rows
    IMPORTING
      et_index_rows = lt_row
      et_row_no     = l_roid.


  PERFORM frm_refresh_alv USING g_grid.

  CALL METHOD g_grid->set_selected_rows
    EXPORTING
      it_index_rows = lt_row.
*& 刷新ALV页面
*&---------------------------------------------------------------------*
*&      --> GV_GRID
*&---------------------------------------------------------------------*
FORM frm_refresh_alv  USING    pv_grid TYPE REF TO cl_gui_alv_grid.

  DATA: ls_stable        TYPE lvc_s_stbl.

  ls_stable-row = 'X'.
  ls_stable-col = 'X'.

  CALL METHOD pv_grid->refresh_table_display
    EXPORTING
      is_stable = ls_stable.
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.

ENDFORM.

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP