トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS

ABAP/SUM の変更点

Top/ABAP/SUM

[[LOOP>ABAP/LOOP]]命令の内部で使用する、集計用の[[ABAP]]命令。

* 概要 [#m343d421]
冒頭に書いた通り・・・としか言いようが無いが、[[AT>ABAP/AT]]句と組み合わせて利用するのが一般的。

その場合、作業領域等の[[変数>アドオン/変数]]を用いる手もあるが、SUM命令だとブレイクキーの増減や変更がある場合にもシンプルな書き方で済むという利点がある。

** 用法 [#j799522c]
集計した数値を[[WRITE>ABAP/WRITE]]命令などで即書き出す場合はこちら、後続処理があったり使いまわしをする場合は[[COLLECT>ABAP/COLLECT]]命令という使い分けが良いかと思う。

ただし、構造の項目のうちIとPとFの型を持つものは無条件で合計されてしまうようなので、数量や金額などの単純な集計以外は出番がないかも。

** サンプル [#e64a9554]
 LOOP AT IT_SALES_ORDER INTO L_WA_SALES_ORDER.
   AT END OF KUNAG.
     SUM.
   ENDAT.
 ENDLOOP.

* その他 [#vf2fb609]
便利っちゃ便利なのかもしれないが、すべての数量や金額項目を合計したいケースなんて大してないわけだし、「数値項目だったら全部合計しちゃえ!全部は使わないかもしれないけど!」という明示的でないところが私の美学に反するので、あまり使わない。

[[IF>ABAP/IF]]文をかまして特定の場合だけ加算したり、合計のキーとしたい項目がキレイに並んでいないことなんてよくあるし。


~
~
CENTER:【スポンサードリンク】
#htmlinsert(amazon_book_sap_system_implement)
~
~
----
#pcomment(reply)