SAP ABAP 処理の流れとイベントの書き方(レポートプログラム編)

ABAPでは、レポートプログラムと、Dynproプログラムがあります。

どちらも構造的には同じなのですが、Dynproプログラムを簡略化したものがレポートプログラムです。

簡単に作れるため、基本的にレポートプログラムが主流だと思います。



<プログラムの種類>

・レポートプログラム(今回はこっち!)

第一画面で検索条件を打ち込んで、データベースからその条件を引っ張ってきて、なんらかの出力をするもの



・Dynproプログラム

レポートプログラムをより拡張開発できる形。慣れれば自由自在に開発可能だが、メンテナンスが大変になりがち。



<レポートプログラム処理の流れ>

①プログラムが実行される。

②第一画面になんらかの文字が入力されて、Enterもしくは、実行ボタンが押される

③プログラムが実行される

④出力後の画面でさらにボタンが押される



そして、ABAPは基本的にイベントというブロック単位で処理が行われます。

イベントの書いた順が異なったとしても、決められたブロック順で実行されます。



代表的なものとしては下記があります。



INITIALIZATION

AT SELECTION-SCREEN.

AT SELECTION-SCREEN OUTPUT.

START-OF-SELECTION.

END-OF-SELECTION.



これを実行可能なコードにすると。。。
(下記よりコピペしていただいくと、即時に実行可能プログラムです。)



* PROGRAM START!!

REPORT TEST.

*----------------------------------------------------*

* INITIALIZATION

*----------------------------------------------------*

INITIALIZATION.

* ①の処理はここで通る。

*※プログラム実行時の1回のみ。

* 変数に初期値を設定するのにおすすめ。

*----------------------------------------------------*
* AT SELECTION-SCREEN.

*----------------------------------------------------*

AT SELECTION-SCREEN.

* ②の処理はここで通る。

* エンターが押される度にここを通るため、入力チェックに最適

*----------------------------------------------------*

* AT SELECTION-SCREEN OUTPUT.

*----------------------------------------------------*

AT SELECTION-SCREEN OUTPUT.

* 検索ヘルプを使ってたら通るかも。ここでは省略。

*----------------------------------------------------*
* START-OF-SELECTION.

*----------------------------------------------------*

START-OF-SELECTION.

* ③の処理はここで通る。

* プログラムの中身ともいえる、DB抽出や更新をここで行う。

*----------------------------------------------------*

* END-OF-SELECTION.

*----------------------------------------------------*

END-OF-SELECTION.

* あまりつかわないかも。START-OF-SELECTIONの内容が

* すべて終了すると通る。

*----------------------------------------------------*

* USER_COMMAND

*----------------------------------------------------*

FORM USER_COMMAND USING UCOMM   LIKE SY-UCOMM
                                                 FIELD  TYPE SLIS_SELFIELD.



* すべてが終了して、ALV帳票画面になった際に通るかも。

* ここでは省略。



ENDFORM.

0 件のコメント :

コメントを投稿