SAP内表与工作区的区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SAP内表与工作区的区别相关的知识,希望对你有一定的参考价值。

  SAP内表与工作区的区别:
  内表和工作区也都是存放数据的,区别是内表像DB里面的数据表一样,有字段有行数,可以有很多行数据。但是工作区就只有一条数据,我们叫它表头数据,很多情况下是出现在循环当中。用来对比 输出。内表可以包含两行和两行以上的纪录,工作区只能有一行记录。
参考技术A 简单的说,内表是存放数据的,工作区也是存放数据的,区别是内表像DB里面的数据表一样,有字段有行数,可以有很多行数据。但是工作区就只有一条数据,我们叫它表头数据,很多情况下是出现在循环当中。用来对比 输出。 参考技术B 内表可以看做是一张表 一个内表可以有很多行的数据 工作区可以看做是内表的一行数据 一个工作区只能存储一行数据

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

现在我要循环内表ITAB把表中B字段下面的数据组合成一个自己定义的ITAB2这张内表中的新字段ITAB2-zhsj1 = 'w1/w2/w3/w4'来显示循环组合应该怎么去写?
我需要把ITAB中的字段B这一列循环读取出来,然后组成一个新的字段。这个字段包含B的所有值例:w1/w2/w3/w4,中间用/号来隔开。

参考技术A data: l_lines type i,"存放内表ITAB的记录数
l_times type i."当前循环的次数
Describe ITAB Lines l_lines."获取内表ITAB的记录数
Loop at ITAB into Wa.
l_times = l_times + 1."循环次数加1
IF l_times = 1."第一次循环,Wa2-zhsj1为空
Concatenate Wa-B '/' into Wa2-zhsj1.
ELSEIF l_times = l_lines."如果当前循环的次数等于内表ITAB的记录数
Concatenate Wa2-zhsj1 Wa-B into Wa2-zhsj1."则不需要加‘/’
ELSE.
Concatenate Wa2-zhsj1 '/' Wa-B Into Wa2-zhsj1."否则,要添加‘/’
ENDIF.
Endloop.
Append Wa2 to ITAB2.
参考技术B LOOP AT ITAB INTO WA
WA2-ZHSJ1 = WA-B
APPEND WA2 TO ITAB2
ENDLOOP.

没怎么明白你的意思
循环ITAB到工作区,然后将工作区对应字段再付给与ITAB2对应的工作区WA2,
最后把WA2弄到ITAB2里本回答被提问者和网友采纳
参考技术C data: str(20) type c.
loop at itab.
CONCATENATE str ITAB-B INTO str SEPARATED BY '/'
endloop.

itab2-zhsj1 = str.
append itab2.
参考技术D 思路是先对itab-B循环取数,然后用concatenate语句将所有取出来的值放入你所定义的新字段中(这一步操作可以结合在对itab进行每一次循环的过程中) 第5个回答  2013-04-03 LOOP AT ITAB INTO WA_ITAB.
CONCATENATE ITAB2-zhsj1 WA_ITAB-B INTO ITAB2-zhsj1 SEPARATED BY '/'.
*----- 要不要APPEND ITAB2看你需求

ENDLOOP.

以上是关于SAP内表与工作区的区别的主要内容,如果未能解决你的问题,请参考以下文章

sap的内表B是指哪个表

SAP ABAP中的内表

abap中 结构 和 工作区有啥区别

ABAP OPEN SQL——内表与内表结构

ABAP 内表

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