【ABAP】レポートプログラムの構成

構成について

まず初めにABAP言語を使ってADD-ON開発を行う際の種類としていくつかあり、
レポートプログラム、汎用モジュール、Dynproなどがある。
その中でADD-ON開発時に最も使用するプログラムはレポートプログラムとなります。
レポートプログラムには構成があるため説明する。

構成については大きく2つに分けられ以下図の通りとなる。

レポートプログラムの構成

データ宣言部分

 プログラムでどの様なデータを扱うのかを定義します。
 データを扱うには値を格納するための箱を用意しなければなりません。
 箱についても箱1つだけなのか、複数仕切りのある大きな箱なのか、
 画面に入力した値を格納する箱なのかといったどの様な箱を用意するのかを指定します。
 以下10桁の文字を格納する変数(箱)の例である。

 DATA L_TEST(10) TYPE C.

処理

 どのタイミングでどの様な処理を行うかを各イベントブロック毎に記述します。
 主に使用するイベントブロックについて以下6個紹介します。
 イベントブロックについては基本的に明記する必要がありますが明記していない場合は
 「START-OF-SELECTION」が割当てられます。
 不要なイベントブロックがある場合は記述する必要はありません。

 主に使用するイベントブロック

  • INITIALIZATION

 プログラム実行し、選択画面が表示される前の処理ブロックとなる。
 主な処理としては変数の初期化を行う。
 他にも選択画面の初期値変更など行う。

  • AT SELECTION-SCREEN

 選択画面でEnterキーを押下または実行ボタンを押下した際に処理される。
 主な処理としては選択画面で入力された値のチェックを行う。

  • START-OF-SELECTION

 選択画面で実行ボタン押下後、「AT SELECTION-SCREEN」で
 エラーが無かった場合に「START-OF-SELECTION」が処理される。
 主な処理としては開発機能の主となる処理を行う。
 例えばデータの取得や編集、登録など。

  • END-OF-SELECTION

 プログラムの主となる処理の最後として処理される。
 主な処理としてはデータを一覧で表示や処理結果内容の出力、
 ファイル出力などを行う。

  • TOP-OF-PAGE

 帳票など一覧表示の生成時に処理される。
 出力されたデータ一覧や帳票のヘッダ部分を表示する。

  • END-OF-PAGE

 帳票など一覧表示の生成時に処理される。
 出力されたデータ一覧や帳票のフッタ部分を表示する。

まとめ

以上がイベントブロックの一部紹介となる。
 補足情報として、イベントブロック毎にある程度処理を分けているが中には
 処理記述が多くなり、他の人がプログラムを見たときに分かりにくい内容となる事がある。
 そのため、処理をある一定のかたまりとして部品化するサブルーチンの
 定義をすることも可能です。
 例えば「START-OF-SELECTION」ではデータ取得やデータ編集などの処理単位で
 部品化することでプログラムを見やすくすることが出来る。

以上、レポートプログラムの構成についての説明となります。