FOR命令
3. FOR命令
3. FOR命令
FOR命令でLOOPでの操作が容易にできるようになりました。3つの使用パターンがありますので、それぞれ確認していきましょう。
FOR命令パターン①、パターン②の事前データ準備
*シップメント内部テーブル:gt_shipsを準備し以下データをセット
*シップメントの型定義
TYPES: BEGIN OF ty_ship, tknum TYPE tknum, “Shipment Number name TYPE ernam, “Name of Person who Created the Object city TYPE ort01, “Starting city route TYPE route, “Shipment route END OF ty_ship.
*シップメントのテーブル型定義
TYPES: ty_ships TYPE SORTED TABLE OF ty_ship WITH UNIQUE KEY tknum.
*出発国のテーブル型定義
TYPES: ty_citys TYPE STANDARD TABLE OF ort01 WITH EMPTY KEY.
*シップメントのテーブル定義
DATA gt_ships TYPE ty_ships.
FOR命令パターン①
<ABAP7.4より以前>
内部テーブルgt_shipsのCity項目を、別内部テーブルgt_citysに移す場合、LOOP命令内でAPPEND命令を使用する必要がありました。
<ABAP7.4以降>
内部テーブルgt_shipsのCity項目を、別内部テーブルgt_citysに移す場合、FOR命令で内部テーブルに値を直接格納できるようになりました。
FOR命令 パターン①の実行結果
FOR命令パターン②
<ABAP7.4より以前>
内部テーブルgt_shipsのうち、ルートが’R0001’のCity項目を、別内部テーブルgt_citysに移したい場合、
LOOP命令にWHERE条件を指定していました。
<ABAP7.4以降>
内部テーブルgt_shipsのうち、ルートが’R0001’のCity項目を、別内部テーブルgt_citysに移したい場合、
FOR命令でもWHERE条件を指定可能となります。
FOR命令 パターン②の実行結果
FOR命令パターン③
<ABAP7.4より以前>
<ABAP7.4以降>
※FOR命令を用いて、繰り返し処理を行い内部テーブルに直接計算結果を格納することができます。