news 2026/4/15 16:34:51

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/4/15 14:10:43

ue入门项目:项目设置

能帮到你的话&#xff0c;就给个赞吧 &#x1f618; 文章目录项目设置1.创建项目2.创建地图3.创建地图的相关配置1.创建项目只需要按如图所示点击创建即可2.创建地图1.文件-新建关卡-选择basic即可创建2.创建地图后必须点击保存才生效3.创建地图的相关配置玩家点击运行时 地图运…

作者头像 李华
网站建设 2026/4/15 14:13:03

PyTorch-CUDA-v2.7镜像在气候模拟预测中的尝试

PyTorch-CUDA-v2.7镜像在气候模拟预测中的尝试 在极端天气事件频发的今天&#xff0c;传统气候模型正面临前所未有的计算压力。一次高分辨率的全球环流模拟可能需要在超算上运行数天&#xff0c;而科研人员却急需更快地验证新算法、测试不同参数组合——这种矛盾催生了AI驱动的…

作者头像 李华
网站建设 2026/4/3 13:31:57

PyTorch-CUDA镜像能否加速推荐系统模型迭代

PyTorch-CUDA镜像能否加速推荐系统模型迭代 在电商、短视频和社交平台日益依赖个性化推荐的今天&#xff0c;一个核心问题摆在算法团队面前&#xff1a;如何让模型从“能跑”变成“快跑”&#xff1f;我们见过太多团队卡在环境配置上数日不得进展&#xff0c;也见过训练一次动…

作者头像 李华
网站建设 2026/4/14 20:42:27

计算机毕业设计springboot收纳师管理系统 基于SpringBoot的居家整理服务预约平台 SpringBoot驱动的智能收纳顾问调度系统

计算机毕业设计springboot收纳师管理系统x81080dv &#xff08;配套有源码 程序 mysql数据库 论文&#xff09; 本套源码可以在文本联xi,先看具体系统功能演示视频领取&#xff0c;可分享源码参考。城市居住空间寸土寸金&#xff0c;物品却与日俱增&#xff0c;“找不到、塞不下…

作者头像 李华
网站建设 2026/4/12 9:03:03

PyTorch-CUDA-v2.7镜像在智能客服系统中的实践

PyTorch-CUDA-v2.7镜像在智能客服系统中的实践 在当前智能客服系统日益复杂的背景下&#xff0c;用户对响应速度和理解准确性的要求越来越高。一个能秒级识别意图、精准提取信息并流畅生成回复的对话引擎&#xff0c;背后往往依赖于高性能的深度学习推理能力。然而&#xff0c;…

作者头像 李华
网站建设 2026/4/15 0:31:55

PyTorch-CUDA-v2.7镜像能否支持图像生成扩散模型

PyTorch-CUDA-v2.7 镜像能否支撑图像生成扩散模型&#xff1f; 在 AIGC 浪潮席卷全球的今天&#xff0c;图像生成技术正以前所未有的速度重塑创意产业。从 Stable Diffusion 到 DALLE&#xff0c;这些惊艳世人的 AI 画作背后&#xff0c;是一套高度依赖 GPU 算力与深度学习框架…

作者头像 李华