在使用LOOP内表处理数据时,经常会用到AT LAST/AT NEW/AT END/AT FIRST去处理,但是在AT…ENDAT之间如果要用到数据时,会发现字符类型数据变为了’*’,数值类型数据变为了’0’。
遇到这样的情况时,我的方法是使用指针规避,使用:
LOOP AT IT_TAB ASSIGNING FIELD-SYMBOL(<FS_TAB>).
ENDLOOP.
代替
LOOP AT IT_TAB INTO WA_TAB.
ENDLOOP.
2021年7月16日加:
LOOP AT GT_OUTPUT INTO GS_OUTPUT.
DATA(L_TABIX) = SY-TABIX.
AT NEW VAL.
GS_OUTPUT = GT_OUTPUT[ L_TABIX ].
ENDAT.
ENDLOOP.
LOOP AT GT_OUTPUT INTO GS_OUTPUT.
DATA(GS_OUTPUT1) = GS_OUTPUT.
AT NEW VAL.
GS_OUTPUT = GS_OUTPUT1.
ENDAT.
ENDLOOP.
如果大家还有其他好的方法欢迎评论交流。
OVER…