ABAP: Loop At <itab>TO <wa>Где <cond> - PullRequest
       18

ABAP: Loop At <itab>TO <wa>Где <cond>

3 голосов
/ 05 января 2012

У меня проблема с циклом через использование условия, что атрибут из одной таблицы совпадает с другим. Для лучшего объяснения я пропущу код. Это не сложно, но я не понимаю, где я совершил ошибку.

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 я хочу показать, что sflight содержит для этой каретки. Но это только пишет wa_spfli-carrid. Это никогда не добирается до второй записи. Когда я делаю отладку, я получаю, что wa_sflight всегда пуст. (или никогда не добирается до этого) gt_sflight и gt_spfli заполняются так, откуда проблема? Если я уберу «EAR carrid EQ wa_sflight-carrid» работает ... но это не то, что я хочу показать на экране.

Дополнительная информация (не знаю, полезно ли это): gt_spfli и gt_sflight заполняются через функциональный модуль, который я сделал сам.

1 Ответ

7 голосов
/ 05 января 2012

Во внутреннем цикле вы хотите сравнить carrid с wa_spfli-carrid (который происходит из внешнего цикла), а не с wa_sflight-carrid.

...