news 2026/6/13 2:53:25

MOVE_CORRESPONDING_ITAB

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
MOVE_CORRESPONDING_ITAB

使用MOVE-CORRESPONDING时可以通过KEEPING TARGET LINES实现追加而不是覆盖。
SAP 的实例Demo

REPORT demo_move_corresponding_itab. CLASS demo DEFINITION. PUBLIC SECTION. CLASS-METHODS main. PRIVATE SECTION. TYPES: c3 TYPE c LENGTH 3, BEGIN OF iline1, col1 TYPE c3, col2 TYPE c3, END OF iline1, BEGIN OF iline2, col2 TYPE c3, col3 TYPE c3, END OF iline2, BEGIN OF line1, col1 TYPE c3, col2 TYPE c3, col3 TYPE STANDARD TABLE OF iline1 WITH EMPTY KEY, END OF line1, BEGIN OF line2, col2 TYPE c3, col3 TYPE STANDARD TABLE OF iline2 WITH EMPTY KEY, col4 TYPE c3, END OF line2. CLASS-DATA: itab1 TYPE STANDARD TABLE OF line1 WITH EMPTY KEY, itab2 TYPE STANDARD TABLE OF line2 WITH EMPTY KEY, out TYPE REF TO if_demo_output. CLASS-METHODS: fill_tables, display_table1, display_table2. ENDCLASS. CLASS demo IMPLEMENTATION. METHOD main. DATA buffer LIKE itab2. out = cl_demo_output=>new( ). fill_tables( ). out->begin_section( `itab1` ). display_table1( ). out->next_section( `itab2` ). display_table2( ). buffer = itab2. out->begin_section( `MOVE-CORRESPONDING` ). MOVE-CORRESPONDING itab1 TO itab2. display_table2( ). itab2 = buffer. out->next_section( `MOVE-CORRESPONDING KEEPING TARGET LINES` ). MOVE-CORRESPONDING itab1 TO itab2 KEEPING TARGET LINES. display_table2( ). itab2 = buffer. out->next_section( `MOVE-CORRESPONDING EXPANDING NESTED TABLES` ). MOVE-CORRESPONDING itab1 TO itab2 EXPANDING NESTED TABLES. display_table2( ). itab2 = buffer. out->next_section( `MOVE-CORRESPONDING EXPANDING NESTED TABLES ` && `KEEPING TARGET LINES` ). MOVE-CORRESPONDING itab1 TO itab2 EXPANDING NESTED TABLES KEEPING TARGET LINES. display_table2( ). out->display( ). ENDMETHOD. METHOD fill_tables. itab1 = VALUE #( ( col1 = 'a11' col2 = 'a12' col3 = VALUE #( ( col1 = 'a11' col2 = 'a12' ) ( col1 = 'a21' col2 = 'a22' ) ) ) ( col1 = 'b21' col2 = 'b22' col3 = VALUE #( ( col1 = 'b11' col2 = 'b12' ) ( col1 = 'b21' col2 = 'b22' ) ) ) ( col1 = 'c31' col2 = 'c32' col3 = VALUE #( ( col1 = 'c11' col2 = 'c12' ) ( col1 = 'c21' col2 = 'c22' ) ) ) ). itab2 = VALUE #( ( col2 = 'x11' col3 = VALUE #( ( col2 = 'x11' col3 = 'x12' ) ( col2 = 'x21' col3 = 'x22' ) ( col2 = 'x31' col3 = 'x32' ) ) col4 = 'x12' ) ( col2 = 'y21' col3 = VALUE #( ( col2 = 'y11' col3 = 'y12' ) ( col2 = 'y21' col3 = 'y22' ) ( col2 = 'y31' col3 = 'y32' ) ) col4 = 'y22' ) ). ENDMETHOD. METHOD display_table1. DATA: BEGIN OF outl, col1 TYPE c3, col2 TYPE c3, col31 TYPE c3, col32 TYPE c3, END OF outl. DATA output LIKE STANDARD TABLE OF outl WITH EMPTY KEY. LOOP AT itab1 ASSIGNING FIELD-SYMBOL(<wa>). outl-col1 = <wa>-col1. outl-col2 = <wa>-col2. LOOP AT <wa>-col3 ASSIGNING FIELD-SYMBOL(<col3>). outl-col31 = <col3>-col1. outl-col32 = <col3>-col2. IF sy-tabix > 1. CLEAR outl-col1. CLEAR outl-col2. ENDIF. APPEND outl TO output. ENDLOOP. ENDLOOP. out->write( output ). ENDMETHOD. METHOD display_table2. DATA: BEGIN OF outl, col2 TYPE c3, col32 TYPE c3, col33 TYPE c3, col4 TYPE c3, END OF outl. DATA output LIKE STANDARD TABLE OF outl WITH EMPTY KEY. LOOP AT itab2 ASSIGNING FIELD-SYMBOL(<wa>). outl-col2 = <wa>-col2. outl-col4 = <wa>-col4. LOOP AT <wa>-col3 ASSIGNING FIELD-SYMBOL(<col3>). outl-col32 = <col3>-col2. outl-col33 = <col3>-col3. IF sy-tabix > 1. CLEAR outl-col2. CLEAR outl-col4. ENDIF. APPEND outl TO output. ENDLOOP. ENDLOOP. out->write( output ). ENDMETHOD. ENDCLASS. START-OF-SELECTION. demo=>main( ).

结果展示

itab1

OUTPUT
COL1COL2COL31COL32
a11a12a11a12
a21a22
b21b22b11b12
b21b22
c31c32c11c12
c21c22

itab2

OUTPUT
COL2COL32COL33COL4
x11x11x12x12
x21x22
x31x32
y21y11y12y22
y21y22
y31y32

MOVE-CORRESPONDING

OUTPUT
COL2COL32COL33COL4
a12a11a12
a21a22
b22b11b12
b21b22
c32c11c12
c21c22

MOVE-CORRESPONDING KEEPING TARGET LINES(追加)

OUTPUT
COL2COL32COL33COL4
x11x11x12x12
x21x22
x31x32
y21y11y12y22
y21y22
y31y32
a12a11a12
a21a22
b22b11b12
b21b22
c32c11c12
c21c22

MOVE-CORRESPONDING EXPANDING NESTED TABLES(匹配嵌入的对应字段)

OUTPUT
COL2COL32COL33COL4
a12a12
a22
b22b12
b22
c32c12
c22

MOVE-CORRESPONDING EXPANDING NESTED TABLES KEEPING TARGET LINES

OUTPUT
COL2COL32COL33COL4
x11x11x12x12
x21x22
x31x32
y21y11y12y22
y21y22
y31y32
a12a12
a22
b22b12
b22
c32c12
c22
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/28 8:00:08

PyTorch-CUDA镜像能否用于天文数据分析

PyTorch-CUDA镜像能否用于天文数据分析 在FAST、LSST和Euclid等新一代观测设备的推动下&#xff0c;天文学正以前所未有的速度进入“大数据时代”。一次巡天可能产生数百万张高分辨率图像&#xff0c;单靠传统算法已难以完成高效分类与模式识别。比如&#xff0c;仅从SDSS数据库…

作者头像 李华
网站建设 2026/5/30 3:20:56

PyTorch-CUDA镜像如何简化机器人深度学习开发

PyTorch-CUDA镜像如何简化机器人深度学习开发 在智能机器人研发一线&#xff0c;你是否经历过这样的场景&#xff1a;新入职的算法工程师花了整整三天才把PyTorch和CUDA环境配通&#xff1b;团队成员因为CUDA版本不一致导致模型训练结果无法复现&#xff1b;原本计划一周完成的…

作者头像 李华
网站建设 2026/6/10 15:43:55

Vue+springboot的旅游信息网站的设计与实现_x0p96alf

目录已开发项目效果实现截图关于博主开发技术介绍核心代码参考示例1.建立用户稀疏矩阵&#xff0c;用于用户相似度计算【相似度矩阵】2.计算目标用户与其他用户的相似度系统测试总结源码文档获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;已开发…

作者头像 李华
网站建设 2026/6/10 20:47:44

PyTorch-CUDA镜像能否用于大模型token生成任务

PyTorch-CUDA镜像能否用于大模型token生成任务 在当前AI应用快速落地的浪潮中&#xff0c;一个现实问题摆在开发者面前&#xff1a;如何在有限时间内&#xff0c;将一个百亿参数的大语言模型从实验环境推向可交互的原型系统&#xff1f;尤其是在需要逐个生成输出词元&#xff0…

作者头像 李华
网站建设 2026/6/8 18:27:30

springboot嘉世酒店餐饮管理系统_71n76659

目录已开发项目效果实现截图关于博主开发技术介绍核心代码参考示例1.建立用户稀疏矩阵&#xff0c;用于用户相似度计算【相似度矩阵】2.计算目标用户与其他用户的相似度系统测试总结源码文档获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;已开发…

作者头像 李华
网站建设 2026/6/13 0:48:29

亲测有效 | FreeBuds 7i啸叫处理方法来啦~

分享个蓝牙耳机小问题&#xff0c;用FreeBuds 7i偶尔会碰到啸叫&#xff0c;本来安安静静听歌&#xff0c;突然的啸叫一下&#xff0c;虽然不严重&#xff0c;但还挺影响使用感&#xff0c;后来才知道这是普遍情况&#xff0c;很好解决&#xff5e;啸叫的原因其实也不复杂&…

作者头像 李华