CL_GUI_ALV_GRID_BASE->MT_MODIFIED_CELLS在网格控件中是个非常重要的属性,sap是如何将客户端的编辑数据自动回写到该内表的,这对希望增强网格控件的 ABAPER兄弟会有很多作用。我现在就将我的理解写下来,供大家参考。

1)在创建CL_GUI_ALV_GRID_BASE的对象,会调用SET_INFO_TABLE方法为MT_MODIFIED_CELLS创建一个CL_GUI_DATAPONDEMAND对象,并把MT_MODIFIED_CELLS的地址传递到CL_GUI_DATAPONDEMAND的M_DATAPTR属性;
2)调用CL_GUI_DATAPONDEMAND->control_assign_prop进行注册全局静态内表“M_RUNNINGOBJECTS”,该内表包含下列字段
  begin of runningdataobjs,
           handle type i,    "CL_GUI_DATAPONDEMAND的唯一ID号,系统每建一个会自动加一
           obj    type ref to cl_gui_datapondemand,"刚创建的CL_GUI_DATAPONDEMAND对象的地址
           Is_Killed(1) type  C,  "Y6BK003062    "是否Kill
        end of runningdataobjs ,
到这,系统就已经为未来回传数据准备好了信息。

在AS得到回传的XML数据,经过对应的LCL_MYXMLConsumer的子类进行处理回写控件的属性和内表。那么CL_GUI_ALV_GRID_BASE->MT_MODIFIED_CELLS又是怎么写回去的呢?
1)AS会分析客户端回传的XML数据,根据XML的项目首先会为'DATACHANGES'创建LCL_MYTABDATACHANGECONSUMER的对象;
2)(CL_GUI_DATAPONDEMAND的唯一ID号)调用call method ('CL_GUI_DATAPONDEMAND')=>('GET_WRITE_ACCESS')从全局静态内表“M_RUNNINGOBJECTS”获得对应控件数据的CL_GUI_DATAPONDEMAND对象赋值给LCL_MYTABDATACHANGECONSUMER的对象的m_dataaccess属性。
3)在LCL_MYTABDATACHANGECONSUMER的对象的OnExecute将通过m_dataaccess属性调用CL_GUI_DATAPONDEMAND对象的On_Modify,On_Remove等方法回写数据。
这样数据就会写到了MT_MODIFIED_CELLS的内表中。

ABAP--SAP是如何回写CL_GUI_ALV_GRID_BASE的MT_MODIFIED_CELLS的相关推荐

  1. ABAP:List中回写CheckBox的值到内表

    我们在内表中定义了一个flag字段并以checkbox的方式显示在List上面后,该如何将用户的选项回写到内表中去? 由于可能有Title.Column Heading以及TOP-OF-PAGE事件的 ...

  2. 在ABAP的SQL语句中写Oracle Hints

    在ABAP的SQL语句中写Oracle Hints ①用过的两个写法: 1.指定使用全表扫描:%_HINTS ORACLE 'FULL(table_name)' 2.指定索引:%_HINTS ORAC ...

  3. 网吧服务器回写盘用什么型号,网吧服务器回写盘的配置

    网吧服务器回写盘的配置 内容精选 换一换 如果您选择使用SFS Turbo实现文件共享存储,此章节可跳过.在双NFS Server的场景下,需要配置NFS Server之间的同步机制,确保NFS Se ...

  4. 存储引擎 K/V 分离下的index回写问题

    前言 近期在做on nvme hash引擎相关的事情,对于非全序的数据集的存储需求,相比于我们传统的LSM或者B-tree的数据结构来说 能够减少很多维护全序上的计算/存储资源.当然我们要保证hash ...

  5. linux内核页高速缓存,《Linux内核设计与实现》读书笔记(十六)- 页高速缓存和页回写(示例代码)...

    主要内容: 缓存简介 页高速缓存 页回写 1. 缓存简介 在编程中,缓存是很常见也很有效的一种提高程序性能的机制. linux内核也不例外,为了提高I/O性能,也引入了缓存机制,即将一部分磁盘上的数据 ...

  6. linux块设备的IO调度算法和回写机制

    ************************************************************************************** 參考: <Linux ...

  7. 深究AngularJS——ng-checked(回写:带真实案例代码)

    1.需求 在添加页面实现一个checkbox的选择,然后在详情页面展示时,会自动选上之前被选中的. 2.添加页面 看官最好将这个代码复制过去看看效果. <!DOCTYPE html> &l ...

  8. 《Linux内核设计与实现》读书笔记(十六)- 页高速缓存和页回写

    主要内容: 缓存简介 页高速缓存 页回写 1. 缓存简介 在编程中,缓存是很常见也很有效的一种提高程序性能的机制. linux内核也不例外,为了提高I/O性能,也引入了缓存机制,即将一部分磁盘上的数据 ...

  9. SpringMVC的数据响应-回写数据-返回对象或集合(应用)

    通过SpringMVC帮助我们对对象或集合进行json字符串的转换并回写,为处理器适配器配置消息转换参数,指定使用jackson进行对象或集合的转换,因此需要在spring-mvc.xml中进行如下配 ...

最新文章

  1. vb中的webrowser无法进行滑块验证_专题63 验证动量守恒定律
  2. 新品秀:Dell Cast,让Android平板变身台式PC
  3. layui移动端适配_实战:移动端适配的最佳实践
  4. leetcode 223. Rectangle Area | 223. 矩形面积(Java)
  5. 如果把钱存入余额宝时,所有人都在受益,那么谁在亏损呢?
  6. 厉害了,Apache架构师们遵循的 30 条设计原则
  7. java根据xsd验证json文件_JSON解析器之json schema校验及代码实现
  8. 《CCNA学习指南:数据中心(640-911)》——2.5 考试要点
  9. plc c语言做报警,wincc声音报警C脚本版
  10. 实时操作系统与分时操作系统原理详解——经典
  11. 成都Uber优步司机奖励政策(3月10日)
  12. 【Pigeon源码阅读】高可用之熔断降级实现原理(十四)
  13. java中用于定义小数的关键字_Java中用于定义小数的关键字有两个:() 和 (),后者精度高于前者。...
  14. 电脑开机停在主板logo画面
  15. Go 学习笔记(83)— 编码规范及常用开发技巧
  16. git remote prune
  17. TVS二级管 SMBJ6.0CA系列
  18. 在职可以考计算机吗,沈阳师范大学在职研可以考计算机证吗
  19. 国内十大黄金期货交易APP平台排名(2022版)
  20. 装linux系统(和win一起的双系统)

热门文章

  1. ES6 for...of循环
  2. Okhttp-interceptor源码分析,快上车!
  3. Js~对数组进行分组户数
  4. phpAdmin数据库管理套件
  5. android用户界面-组件Widget-常用组件
  6. Effective C++: noexcept
  7. P2017 [USACO09DEC]晕牛Dizzy Cows
  8. python调用钉钉API发送消息
  9. [每天一个知识点]1-程序员的三大美德(1)
  10. Eclipse 3.7 安装Maven插件时报错:requires 'bundle org.slf4j.api 1.6.2' but it could not be found...