通过这个程序,让我清楚的知道了sy-index和sy-tabix的区别。
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记录当前操作的是内表中的第几行数据,内表是不定的,取决于程序现在正在操作的内表。
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.