ABAP--SAP是如何回写CL_GUI_ALV_GRID_BASE的MT_MODIFIED_CELLS的
来源:互联网 发布:穆逢春 知乎 编辑:程序博客网 时间:2024/06/08 20:06
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的
- ABAP--SAP是如何回写CL_GUI_ALV_GRID_BASE的MT_MODIFIED_CELLS的
- SAP ABAP如何隐藏你写的程序代码
- SAP ABAP:如何隐藏你写的程序代码(悲剧的后门)
- SAP ABAP如何隐藏你写的程序代码(危险,请小心谨慎)
- SAP ABAP如何隐藏你写的程序代码(危险,请小心谨慎)
- SAP ABAP如何隐藏你写的程序代码(危险,请小心谨慎)
- ABAP--SAP是如何控制REUSE_ALV_GRID_DISPLAY函数嵌套调用的返回控制
- SAP的Abap培训
- 如何隐藏你写的ABAP代码
- 如何隐藏你写的ABAP代码
- 如何隐藏你写的ABAP代码
- 如何隐藏你写的ABAP代码
- ABAP--如何访问SAP的Domain的Value Range
- ABAP--如何访问SAP的Domain的Value Range
- ABAP--如何访问SAP的Domain的Value Range
- SAP ABAP -----ABAP 有用的日期FUNCTION
- ABAP--SAP的GUI类型介绍(对ABAP新手是个很好资料哦)
- 编译android源码提示/usr/bin/jar命令不存在问题的解决方法
- gcc -rdynamic参数解释
- recommenderjob原码分析
- Java - Why Enum Singleton are better in Java
- 【HTTP】HTTP状态码
- ABAP--SAP是如何回写CL_GUI_ALV_GRID_BASE的MT_MODIFIED_CELLS的
- Disabling contextual LOB creation as createClob() method threw error : java.lang.reflect.InvocationT
- Flume NG源码分析(四)使用ExecSource从本地日志文件中收集日志
- appcompat_v7\res\values-v21\themes_base.xml:191: error: Error: No resource found that matches the gi
- ANDROID L——Material Design详解(动画篇)
- 欢迎使用CSDN-markdown编辑器
- Android程序:使用Http的Get方式读取网络数据
- Enabling SSL or TLS in Oracle E-Business Suite Release 12
- JPA的@Version标记的意义