ABAP 使用AT LAST/AT NEW/AT END/AT FIRST时数据变为‘*‘

在使用LOOP内表处理数据时,遇到字符型变为'*',数值型变为'0'的异常。通过使用指针规避此问题,如将`LOOPAT...ENDLOOP.`替换为`LOOPAT...ASSIGNING FIELD-SYMBOL...ENDLOOP.`。此外,还分享了在2021年7月16日新增的一种处理方式,即保存当前数据到临时变量,然后在AT...ENDAT之间操作临时变量,以保持数据完整性。
摘要由CSDN通过智能技术生成

在使用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…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值