ABAP loop at itab

作者&投稿:象庙 (若有异议请与网页底部的电邮联系)
abap loop at screen~

loop at screen是对屏幕上的所有元素进行循环,它的结构是SCREEN结构,表示屏幕上字段的属性,在屏幕事件中调用此语句,以达到屏幕修改的目的。

要完成这个功能估计在这个循环里面是完成不了的,需要再LOOP一次IT_ITAB,在LOOP中相除

在ABAP中,对内表的操作是要将内表的数据取出到工作区来进行的,表头也是一个工作区,只是工作区的名称与内表的名称一样而已,带表头的内表在LOOP的时候也可以用INTO将它里面的数据循环到与内表名称不一样的工作区中来处理。如:
DATA: BEGIN OF wa_tab,
col1 TYPE char20,
col2 TYPE char20,
col3 TYPE char20,
END OF wa_tab,
itab TYPE TABLE OF wa_tab WITH HEADER LINE.

LOOP AT itab into wa_tab.
ENDLOOP.
在写代码的时候,一般不推荐用带表头的内表,因为ABAP里面很对语句中内表出现的位置也是工作区可以出现的位置,如IF itab IS INITIAL就是判断工作区itab是否为空,而IF itab[] IS INITIAL才是判断内表是否为空
在不带表头的内表中,如果要修改内表的内容,则可以用字段符号来方便操作,而不需要额外的MODIFY一下,如:
FIELD-SYMBOLS: <fs> TYPE wa_tab.
LOOP AT itab ASSIGN <fs>.
<fs>-col1 = 'AA'.
ENDLOOP.
这样内表的每一行数据中的col1字段的内容就变成了AA

这主要看你内表是怎么定义的。如果定义内表是带表头的话在LOOP AT时就不用 INTO 工作区。
LOOP AT ITAB.
如果不带表头就要定义相应的工作区。
LOOP AT ITAB INTO WA_ITAB.
同理在内表APPEND时也是一样。
APPEND ITAB.
APPEND WA_ITAB TO ITAB.


错那县13954574975: ABAP loop at itab -
颛诗复方: 在ABAP中,对内表的操作是要将内表的数据取出到工作区来进行的,表头也是一个工作区,只是工作区的名称与内表的名称一样而已,带表头的内表在LOOP的时候也可以用INTO将它里面的数据循环到与内表名称不一样的工作区中来处理.如...

错那县13954574975: SAP ABAP中的内表 -
颛诗复方: ABAP 内表有2种,一个是有工作区的内表,一个是没有工作区的内表,就是说一个有HEADER,一个没有HEADER,两种用法在LOOP的时候你就能看出来 有工作区的内表:loop at itab......endloop.没有工作区的内表必须另外定义一个工作区:loop at itab into wa......endloop.

错那县13954574975: abap中 对内部表某一列的值进行操作有什么好的方法吗? -
颛诗复方: delete itab where 加条件.modify itab from stru transporting field where 加条件.read table itab with key field1 = xxx field2 = xxx.

错那县13954574975: SAP ABAP.取一个透明表数据放到另外一个透明表.并保持数据同步 -
颛诗复方: 请定义一个内表,来存放从透明表A取出的数据;然后把内表的数据Modify到透明表B.这个问题就解决了.

错那县13954574975: abap 怎么使用abap memory在两个程序间传值 -
颛诗复方: LOOP AT ITAB INTO WA WA2-ZHSJ1 = WA-B APPEND WA2 TO ITAB2 ENDLOOP. 没怎么明白你的意思 循环ITAB到工作区,然后将工作区对应字段再付给与ITAB2对应的工作区WA2, 最后把WA2弄到ITAB2里

错那县13954574975: ABAP内表APPEND和LOOP的特殊用法 -
颛诗复方: 用insert吧.STRING-NUMBER = 1. STRING-NAME = 'John'. insert STRING INTO ITAB index 1.STRING-NUMBER = 2. STRING-NAME = 'Paul'. APPEND STRING INTO ITAB index 1.这样就是从头部插入的.后进先出.

错那县13954574975: SAP ABAP 程序 解读 -
颛诗复方: 虽然我不懂MM模块,但是你可以在LOOP里面写个AT END OF XXX来完成这个动作,希望我的回答对你有所帮助 LOOP AT itab INTO wa. If wa-SHKZG = 'S'. wa-YI = wa-MENGE.Else.wa-YI = wa-MENGE * -1.Endif.MODIFY itab from wa.clear : wa.endloop. 因为不懂模块,所以我只能在程序方面上给你解答,模块方面请教别人吧

错那县13954574975: abap 中 相同结构的内表,其中一个有数据,另外一个无数据,如何将数据复制到无数据的表!~ -
颛诗复方: 如A,B表,A:有数据,B:无数据.B[] = A[].这样就可以了.\ 以下也可以做参考 附加内表行 要将部分或 全部内表附 加到另一个 内表中,请 使用 APPEND 语句,用法 如下:语法 APPEND LINES OF <itab1> [FROM <n1>] [TO <n2>] TO <itab2>.如...

错那县13954574975: 用SAP ABAP如何转换输入字串为数值并输出! -
颛诗复方: 1.先定义画面元素来接这个输入的字串,假设定义为c1 SELECTION-SCREEN BEGIN OF BLOCK BLK2 WITH FRAME TITLE TEXT-002. PARAMETERS : c1(100) type c. SELECTION-SCREEN END OF BLOCK BLK2. 2.再定义一个table: itab ...

错那县13954574975: abap 如何高效获取内表重复数据? -
颛诗复方: delete ADJACENT DUPLICATES FROM itab [COMPARING { comp1 comp2 ...}|{ALL FIELDS}]... .在使用此语句前,先用sort对内表排序. 更多帮助信息F1查看系统帮助.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网