Abap 索引小于已停止循环的循环中的循环

Abap 索引小于已停止循环的循环中的循环,abap,Abap,我有以下问题,需要一个解决方法? 我有两个相同的ITAB:ITAB1和ITAB2,共60条记录。 我在第一个ITAB中循环,当我找到一条记录时,我在第二个ITAB中循环,索引=第一个ITAB的sy tabix: LOOP at ITAB1 where COL = '001'. lv_tabix = sy-tabix. * Do STH. LOOP at ITAB2 FROM lv_tabix * do sth EXIT. ENDCASE. ENDCASE. 假设

我有以下问题,需要一个解决方法?
我有两个相同的ITAB:ITAB1和ITAB2,共60条记录。
我在第一个ITAB中循环,当我找到一条记录时,我在第二个ITAB中循环,索引=第一个ITAB的sy tabix:

LOOP at ITAB1 where COL = '001'.
  lv_tabix = sy-tabix.
  * Do STH.
  LOOP at ITAB2 FROM lv_tabix
    * do sth
    EXIT.
  ENDCASE.
ENDCASE.
假设我循环第二个ITAB,lv_tabix=17,当第二个ITAB的tabix=22时,我退出。
因此,我将在第一个ITAB中返回,并开始第二个ITAB的循环,lv_tabix=21。
我注意到,第二个ITAB的循环不能从一个小于它停止的记录(22)的记录(21)开始

我说得对吗

我如何克服这个问题?

谢谢

Elias不能重现你的问题

DATA(table_1) = VALUE string_table( ( `A` ) ( `B` ) ( `C` ) ( `D` ) ).
DATA(table_2) = VALUE string_table( ( `A` ) ( `B` ) ( `C` ) ( `D` ) ).

LOOP AT table_1 INTO DATA(row_1).
  DATA(start_index) = sy-tabix.
  LOOP AT table_2 INTO DATA(row_2) FROM start_index.
    IF row_2 = `C`.
      EXIT.
    ENDIF.
  ENDLOOP.
ENDLOOP.

虽然在第一次外循环迭代中,它在
sy tabix=3
处退出内环,在第二次外循环迭代中,它以较低的
start\u index=2

重新启动内环,请发布一些数据。虽然代码太大,无法发布,但这一概念很重要。当我退出ITAB2的循环时,它的tabix等于22。当我再次启动时,Ita2的循环lv_tabix等于21。循环似乎不能从索引开始,因为它小于它停止的索引。我们能克服这个限制吗?当您不在内部循环时,意味着回到第一个循环中,sy tabix必须设置回第一个循环的值(由系统自动)。发布你的代码!StackOverflow概念非常出色,因为人们应该创建一个专用的(从头开始,分而治之->不需要60行,itab1中的2行和itab2中的2行就足够了)。如果你做到了(正如弗洛里安所证明的那样,这很容易做到),你自己就会发现你的假设是错误的,你应该调查问题到底是什么。