动态对比两个相同结构工作区的值CL…
来源:互联网 发布:相机镜头数据 编辑:程序博客网 时间:2024/05/19 00:39
需求是这样的
DATA : LT_IDETAILS TYPE ABAP_COMPDESCR_TAB WITH HEADER LINE.
DATA : LR_REF_TABLE_DES TYPE REF TO CL_ABAP_STRUCTDESCR.
“定义field变量,type any FIELD-SYMBOLS: 《 L_FIELD》 TYPE ANY, 《 L_FIELD_C》 TYPE ANY.
IF SY-SUBRC = 0 AND IS NOT INITIAL.
ASSIGN COMPONENT LT_IDETAILS-NAME OF STRUCTURE CS_LIKP TO 《L_FIELD_C》. 《L_FIELD_C》 = 《L_FIELD》 . ENDIF.
ENDLOOP.
传入is_likp 参数,结构同likp
对比目前 cs_likp 参数,结构同 likp
如果is_likp 中某个字段赋值了,就覆盖掉 cs_likp原有值,
如果is_likp 中字段是空,不处理
**动态得到内表结构 ”全局结构
LR_REF_TABLE_DES ?=
CL_ABAP_TYPEDESCR=>DESCRIBE_BY_NAME( 'LIKP' ).
LT_IDETAILS[] = LR_REF_TABLE_DES->COMPONENTS[].
"循环判断结构每个字段
LOOP AT LT_IDETAILS.
ASSIGN COMPONENT LT_IDETAILS-NAME OF STRUCTURE is_likp TO 《 L_FIELD》 .
其中:
ASSIGN COMPONENT LT_IDETAILS-NAME OF STRUCTURE is_likp TO .
【LT_IDETAILS-NAME】:是is_likp 中的字段名称 ,
【 TO 《L_FIELD》】这里的 《L_FIELD》就是刚才那个字段对应的值
都是动态指定,循环的是likp的结构
其实如果两个结构不完全一样,
如果只需要修改相同字段名称的值
也可以这样处理
只是assign后判断subrc即可
另外还有两个函数
DDIF_NAMETAB_GET
LVC_FIELDCATALOG_MERGE
具体怎么用自己写代码一测便知
注: 《L_FIELD_C》是为防止跟web编码有冲突
0 0
- 动态对比两个相同结构工作区的值CL…
- 相同结构的两个类赋值
- Java对比两个文件统计字符串相同行的数量
- 对比a,b两个表相同字段 数据的差异
- Shell 命令行求两个文件每行对比的相同内容
- 两张结构相同的表对比数据。
- c# 对两个Datatable的结构相同进行合并,结构相同和不同
- 完成两个结构相同的表之间数据的复制
- c# 对两个Datatable的结构相同进行合并
- Oracle 两个数据库之间相同表结构的数据导入
- c# 对两个Datatable的结构相同进行合并
- 合并两个dataset,其中DataTable的结构相同
- 如何合并两个结构相同的mdb文件?
- 利用映射实现两个结构相同javabean的赋值
- 两个表结构相同的表中的字段比对
- .net 反射实现两个相同结构实体类的转换
- 对比两个数组内容是否相同
- comm对比两个文件是否相同
- 外向交货单发货过账BAPI:WS_DELIV…
- 冲销已过账外向交货单BAPI:WS_REVE…
- 删除cr下对象提示:object en…
- Linux 设备驱动框架
- 修改文本CREATE_TEXT/SAVE_TEXT/RE…
- 动态对比两个相同结构工作区的值CL…
- 并查集 Junk-Mail Filter hdu 2473
- 外向交货单发货过账BAPI:BAPI_OUT…
- 用户解锁SM04 SM12
- 工具函数:把一个工作区中非空字段…
- MMPV切账期
- 外向交货单增强BADI:LE_SHP_DELIV…
- ABAP 检查单位允许小数…
- ABAP 图片预览