2

我通过使用一个表中的属性与另一个表中的属性相同的条件来循环存在问题。为了更好地解释我会过去的代码。不是什么难事,但我不明白我在哪里犯了错误。

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 已填充,那么问题来自哪里?如果我删除“carrid EQ wa_sflight-carrid”的工作原理......但不是我想要在屏幕上显示的内容。

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

4

1 回答 1

7

On the inner loop, you want to compare carrid with wa_spfli-carrid (which comes from the outer loop) and not with wa_sflight-carrid.

于 2012-01-05T17:55:51.490 回答