ABAP:循环在<itab> TO <wa>其中<cond> </cond> </wa> </itab>

时间:2012-01-05 16:36:54

标签: loops sap where abap

我在使用一个表中的属性与另一个表中的属性相同的条件时遇到循环问题。为了更好地解释我将通过代码。不是很难,但我不明白我在哪里弄错了。

LOOP AT gt_spfli INTO wa_spfli.
  AT NEW carrid.
    WRITE:/ wa_spfli-carrid.
  ENDAT.
  LOOP AT gt_sflight INTO wa_sflight WHERE carrid EQ wa_sflight-carrid.
    WRITE:/ wa_sflight-carrid,
            wa_sflight-connid,
            wa_sflight-price.
  ENDLOOP.

  ULINE.
  ENDLOOP.

对于spfli中的每个carrid,我想显示sflight包含的那个carrid。但它只写了wa_spfli-carrid。它永远不会第二次写。当我做调试时,我得到wa_sflight总是空的。 (或永远不会到达它)gt_sflight和gt_spfli被填充,所以问题来自哪里?如果我删除“where carrid EQ wa_sflight-carrid”有效......但不是我想在屏幕上显示的内容。

其他信息(不知道它是否有用):gt_spfli和gt_sflight是通过我自己制作的功能模块填充的。

1 个答案:

答案 0 :(得分:7)

在内部循环中,你想比较carrid和wa_spfli-carrid(来自外部循环)而不是wa_sflight-carrid。