OOALV可编辑主键

2020-08-22 18:47发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,

我正在使用cl_gui_alv_grid。

我修改该行上 primary 键的值,最后一个数据变为2。 我应该怎么做才能只保存修改后的数据。

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,

我正在使用cl_gui_alv_grid。

我修改该行上 primary 键的值,最后一个数据变为2。 我应该怎么做才能只保存修改后的数据。

付费偷看设置
发送
7条回答
jovirus
1楼-- · 2020-08-22 19:02

嗨,

您需要在用户命令中执行该操作。 首先从数据库表中删除选定的数据,然后使用新值进行修改。

me_for_i
2楼-- · 2020-08-22 19:02

关于您在其中一项注释中提到的情况,"材料719更改为710",如果您根据 主键,则将删除材料719,并插入材料710,与主键的更新相比,为什么这对您来说是个问题?

Violet凡
3楼-- · 2020-08-22 19:16

嗨,

您可以为alv注册data_changed事件处理程序,并跟踪在保存时必须删除的已修改主键。

 CLASS lcl_event_receiver定义。
   公共部分。
     方法:
       handle_data_changed FOR事件数据已更改OF cl_gui_alv_grid
         导入er_data_changed
         。
 ENDCLASS。  " lcl_event_receiver定义

 CLASS lcl_event_receiver的实现。
   方法handle_data_changed。
     循环er_data_changed-> mt_mod_cells ASSIGNING FIELD-SYMBOL()。
       收集要删除的项目
     结局。
   终结法。  " handle_changed_data
 ENDCLASS。  " gcl_event_receiver IMPLEMENTATION

 数据:
       lo_alv类型参考cl_gui_alv_grid,
       lo_event_receiver类型参考lcl_event_receiver。

   创建对象lo_event_receiver。
   SET HANDLER lo_event_receiver-> handle_data_changed
           对于lo_alv。

 

此致

Peter

野沐沐
4楼-- · 2020-08-22 19:06

数据库表中存在旧值719,这对我来说是个问题。

四川大学会员
5楼-- · 2020-08-22 19:13

嗨,

将值传递给List Viewer控件的字段目录时,将字段目录EDIT ='X'的值传递给主键。

即。

LVC_S_FCAT-EDIT ='X'。

要将"编辑"值保存在ALV中,请参考以下链接

https://wiki.scn .sap.com/wiki/pages/viewpage.action?pageId = 491919981

野沐沐
6楼-- · 2020-08-22 19:24

您需要解释更多,因为它看起来像一个简单的算法。 如果进行比较,并且检测到用户已从ALV中删除了资料719,则将从数据库表中删除相应的行,并且资料710的插入将对应于在数据库表中的插入...

一周热门 更多>