abap 怎样使两张内表合成一个内表

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了abap 怎样使两张内表合成一个内表相关的知识,希望对你有一定的参考价值。

两张表结构不同 比如说 第1张表示采购订单 第2张表是物料 而采购订单下有多个物料

目的:把第2张表和第1张表 合成一个表 注:都是内表 并且 要相互对应

1.这要看你要怎么实现了,可以直接定义一个拥有两个内表结构的内表,在把两个表循环填进去。
2.你还可以做一个动态内表,结构参照两个需要合并的内表结构。
参考技术A 1. 如果两张内表结构相同的话,用下面的语句:
APPEND LINES OF 内表一 TO 内表二.
2. 如果两张内表的结构不同的话,就需要用关键字做双层LOOP循环了。
参考技术B DATA:BEGIN OF C OCCURS 0.
INCLUDE STRUCTURE A.
INCLUDE STRUCTURE B.
data: end of C.

LOOP AT A.
MOVE-CORRESPONDING A to C .
LOOP AT B where <condition>.
MOVE-CORRESPONDING B to C .
APPEND C.
ENDLOOP.
ENDLOOP.本回答被提问者和网友采纳

ABAP 一张内表的,相同物料的数量汇总。

现在有一张有数据内表ITAB,其中有物料号,数量,单位。现在要把相同物料号下的数量进行汇总。该怎样写?

假设内表名叫itab 如果物料号matnr是key 那就用collect.

data: itab1 like table of itab with header line.

clear itab.
loop at itab.
move-corresponding itab to itab1.
collect itab1.
endloop.
fresh itab.
itab[] = itab1[].

这样应该可以,还有一个方法,如果你解决不了我再打出来。。。下班了有点记不住~~~
参考技术A 内表其他栏位要定义成字符型的变量,数量定义为整型变量。
然后Loop内表,Collect内表即可。

楼上方法正解...只是以上这点要注意
Loop at itab.
...
Collect itab.
clear itab.
endloop.
参考技术B loop内标,然后试试COLLECT。应该可以实现。

以上是关于abap 怎样使两张内表合成一个内表的主要内容,如果未能解决你的问题,请参考以下文章

SAP abap开发现在有一张内表ITAB里面有两个字段A和B数据如下:

XML文件和ABAP内表数据的相互转换(基础篇)

abap怎样抽取数据到内表? 顺便想求教关于ABAP程序执行效率和优化

ABAP 中内表的复制

abap 如何得到内表中不重复的记录。

abap怎么把一个内表A的全部数据赋值到另外一个内表B