使用CORRESPONDING mapping把内表A的指定字段赋值给内表B的指定字段?

#如何把内表A的指定字段赋值给内表B的指定字段?

一般两个内表的赋值

1.如果是结构完全一样使用: A = B[]。
若是结构有些一样有些不同那就是使用 MOVE-CORRESPONDING,但是它只能把相同的字段的名的值赋值进去,不同字段名的就无法赋值过去了。
3.loop 循环进行赋值,赋值字段名相同或者不同的都可以办得到,但是资源耗费大。
4.使用方法cl_abap_corresponding=>create可以不使用循环,把字段名不同的字段匹配赋值。(使用较少,感兴趣的自己搜一下)
5.使用MAPPING的方法一代码特别简单易懂。
注意点:
1.字段强制转换,C类型不能强制转换为 i类型,i类型可以转成C类型
2.字段长度,定义的短了,会强制截断。
3.字段名相同的,会自动匹配赋值

此处着重讲使用MAPPING的方法

TYPES:BEGIN OF ty_a,a TYPE char20, "姓名b TYPE i, "年龄c TYPE string, "籍贯END OF ty_a.
TYPES:BEGIN OF ty_e,e TYPE char2,f TYPE i,c TYPE string,END OF ty_e.
DATA:gt_a TYPE TABLE OF ty_a.
DATA:gt_e TYPE TABLE OF ty_e.
gt_a = VALUE #(
( a = '张三' b = 25 c = '湖南人')
( a = '李四啊' b = 34 c = '广东人') ).
gt_e = CORRESPONDING #( gt_a MAPPING e = a f = b ) .cl_demo_output=>display( gt_e ).

结果截图

在这里插入图片描述在这里插入图片描述


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部