ショートカットはありますか、それともテーブルでループして確認する必要がありますか?
つまり、内部テーブルを使用していて、値が内部テーブルの1つのフィールドに含まれているかどうかを確認したいのですが、テーブルをループして値を見つけたくありません。出来ますか?
ショートカットはありますか、それともテーブルでループして確認する必要がありますか?
つまり、内部テーブルを使用していて、値が内部テーブルの1つのフィールドに含まれているかどうかを確認したいのですが、テーブルをループして値を見つけたくありません。出来ますか?
ループを実行したり値をワークエリアに転送したりせずに特定の値を確認するには、次のようREAD
に追加してステートメントを使用できます。TRANSPORTING NO FIELDS
READ TABLE itab WITH KEY FIELD = 'X' TRANSPORTING NO FIELDS.
IF sy-subrc = 0.
"Read was successful.
ENDIF.
更新: リリース 740 から、ABAP には、このブログ投稿LINE_EXISTS
で説明されている述語関数が含まれています。
これは、テーブル式を渡す組み込み関数です。上記の例を使用すると、次のようになります。
IF line_exists( itab[ field = 'X' ] ).
"Do stuff
ENDIF.
その述語のテーブル式の完全な構文は、https ://help.sap.com/doc/abapdocu_750_index_htm/7.50/en-US/abentable_expressions.htm を参照してください。
セラム、
アルゴリズムでループを使用する場合は、次のようなものを使用できます。
LOOP ITAB WHERE FIELD = 'X'.
"code sample
ENDLOOP.
コードでループを使用しない場合、itab で特定の値を確認する特定の方法はないと思います。
お役に立てば幸いです。
タルハ