どちらも構造的には同じなのですが、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 件のコメント :
コメントを投稿