abap SY-INDEX SY-TABIX
对这两个语法的解释:
SY-INDEX:在DO…ENDO.里面有效,在LOOP AT…ENDLOOP.和READ TABLE里面无效。
SY-TABIX: 在LOOP AT…ENDLOOP.和READ TABLE里面有效,在DO…ENDO里面无效。
这是另外一个说法:
sy-index 是系统变量,在sap系统里的描述是:Loop Index–>这里我理解loop仅仅是循环的意思,并不是sap abap中loop。也就是说sy-index只是记录程序当前循环的次数,但是,对于sap abap中的loop循环sy-index是无效的,值是0.
sy-tabix 在sap系统里的描述是:Index of Internal Tables -->sy-tabix记录当前操作的是内表中的第几行数据,内表是不定的,取决于程序现在正在操作的内表。
其实这里有一个有另外一个列子,就是
READ TABLE INDEX
的语法,这里INDEX 指的是列表的第几行其实就是TABIX,包括报表做穿透功能,也用到了这个语法。所以这里的INDEX 指的是内表的第几行。
测试代码。
REPORT ZJAMIE_TEST.
DATA: BEGIN OF t_mara OCCURS 0,
matnr type matnr,
MTART type MTART,
END OF t_mara.
SELECT MATNR
MTART
INTO TABLE t_mara
FROM MARA
UP TO 10 ROWS
WHERE matnr BETWEEN '0000000000Z0000001' and '0000000000Z0000015'.
LOOP AT T_MARA.
WRITE: / ' sy-index',' sy-tabix'.
DO 5 TIMES.
WRITE: / 'DO-->', sy-index,sy-tabix , '-->Do'.
ENDDO.
WRITE / '-------------------------------------------'.
WRITE: / 'RB-->',sy-index,sy-tabix,'-->RB'.
WRITE / '-------------------------------------------'.
read TABLE t_mara with key matnr = '0000000000Z0000009'.
WRITE: / 'RA-->',sy-index,sy-tabix,'-->RA'.
write: / 'RA-->','sy-subrc:',sy-subrc,'-->RA'.
ENDLOOP.
post SAP-Garson
原文链接:https://blog.csdn.net/Pegasus666/article/details/116208157文章来自于网络,如果侵犯了您的权益,请联系站长删除!