2012-01-05 14 views
3

ループスルーaに問題があります。これは、あるテーブルの属性が他のテーブルの属性と同じであるという条件を使用しています。より良い説明のために私はコードを過ぎて行きます。難しいことではありませんが、私はどこで間違いをするのか分かりません。私はSFLIGHTはそのCARRIDのために含まれているものを示したいSPFLI内のすべてのCARRIDのためにABAP:Loop At <itab> TO <wa><cond>

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. 

。しかし、それはwa_spfli-carridだけを書いています。 2度目の書き込みはありません。私がデバッグをすると、wa_sflightは常に空になります。 (または決してそれに到達することはありません)gt_sflightとgt_spfliは、問題がどこから生じるのですか?私が "carrid EQ wa_sflight-carrid"が動作する場所を削除すれば、画面上に表示したいものではありません。

追加情報(役に立つかどうかわかりません):gt_spfliとgt_sflightは、自分で作成した汎用モジュールを通して生成されます。

答えて

7

内部ループでは、carridとwa_spfli-carrid(外側のループから来る)を比較したいですが、wa_sflight-carridでは比較しません。

+1

この時点で、wa_sflightはまだ入力されていませんが、wa_spfliという値があります。 – tomdemuyt

+0

ありがとうございます!愚かな間違い:)私は "カーリド"はspfliから来ると思ったので、私はsflightと比較する必要があります。 – kookies

関連する問題