Loop循环中的内表(Standard Table)操作

195 阅读1分钟

1. Append

Loop循环中,可以向内表追加数据
  • 追加单条数据后,SY-TABIX的值会发生变化,变为最后一行的索引
    
  • 追加多条数据后,也是同样的结果
    
  • 追加的数据在循环中会被读取
    

2. Insert

Loop循环中,可以向内表插入数据
  • 默认使用SY-TABIX作为插入的位置,即:Insert gs_itab Into gt_itab Index SY-TABIX.
  • 原来内表中此行的数据会被挤到下一行(插入多条数据类似)
  • 重点: 下次循环会跳到下下行(SY-TABIX+2), 不是下一行(SY-TABIX+1) (插入多条数据类似)
    在循环中新插入的这一行不会被读取也就不能处理它(有时候需要使用这一特性)
    若插入到SY-TABIX+1,那么新插入的这行就会在下个循环被读取

3. Delete

在循环过程中,可以删除内表的数据
  • delete没有条件时,会默认使用SY-TABIX作为索引,删除内表中的当前行
  • delete后,在下一个循环时,SY-TABIX值没有变,因为下一行上移了(注意不会跳过下行)
  • 若用索引作为触发删除的条件时,从此索引开始及其后的行,都会被删除,因为SY-TABIX值没有变

4. Modify

在循环过程中,可以更新内表的数据
  • modify时,不指定条件,也默认使用SY-TABIX,进行更新