ABAP 使用REUSE_ALV_GRID_DISPLAY实现 ALV列可编辑,编辑刷新后换成不可编辑状态

本文介绍如何使用ABAP中的REUSE_ALV_GRID_DISPLAY创建ALV表格,使得列在编辑后能切换到不可编辑状态。通过在USER_COMMAND事件中处理刷新命令,并在FIELDCAT中修改设置,避免了多次显示ALV的问题。利用额外的全局变量和SY-SUBRC判断,确保在刷新后仅显示最新的、不可编辑的ALV。

ABAP 使用REUSE_ALV_GRID_DISPLAY实现 ALV列可编辑,编辑刷新后换成不可编辑状态。

此方法实现简单,但是效率可能不高。网上有个方法,点击修改按钮,将alv某列的不可编辑状态转为可编辑状态,实现后弹出两个ALV,一个不可编辑状态的,一个原ALV(返回后可看到)。此方法就是针对那方法的改进。


更新
下面更新的代码是正统的操作方法,和网上其他的最大的不同在于
FUNCTION ‘GET_GLOBALS_FROM_SLVC_FULLSCR’ 里面多导入了一个参数sy-cprog
实现完美刷新,没有多个ALV。

FORM alv_user_command USING r_ucomm     LIKE sy-ucomm
                            rs_selfield TYPE slis_selfield.
DATA: lr_grid  TYPE REF TO cl_gui_alv_grid,
    WHEN '&REFRESH'.                              *刷新button
      CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
      IMPORTING
        e_repid = sy-cprog                        *网上代码没有这个,这个是必须的!!!!*
        e_grid  = lr_grid.

      CALL METHOD lr_grid->check_changed_data.

      rs_selfield-refresh = 'X'.

*------------修改内表,更新数据库,使ALV列不可编辑控制等等都在这实现
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值