问题

在调用BAPI 'REUSE_ALV_GRID_DISPLAY_LVC'时设置某一列可编辑时,

gs_fieldcat-edit = 'X'.

在编辑这个可编辑字段后通过调试发现没有更新内表的数据


解决方案

在user_command调用操作之前检查ALV的数据更新

  DATA: lv_grid TYPE REF TO cl_gui_alv_grid.

  CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
    IMPORTING
      e_grid = lv_grid.
  CALL METHOD lv_grid->check_changed_data.

在REUSE_ALV_GRID_DISPLAY_LVC的i_grid_settings参数设置i_grid_settings-edt_cll_cb = 'X'.

DATA: i_grid_settings TYPE lvc_s_glay.
i_grid_settings-edt_cll_cb = 'X'.

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
    EXPORTING
      i_callback_program       = sy-repid       " 当前程序
      i_callback_pf_status_set = 'ALV_STATUS'
      i_callback_user_command  = 'USER_COMMAND'
      i_grid_settings          = i_grid_settings
      is_layout_lvc            = gs_layout      " 界面格式
      it_fieldcat_lvc          = gt_fieldcat    " 字段属性
      i_save                   = 'A'
    TABLES
      t_outtab                 = gt_alv.        "显示数据

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐