イベントとは
イベントは処理のまとまりのようなイメージ。
書かなくてもプログラムを動かすことは可能だが、必ず書くようにしよう。
イベントには次のようなものが存在する。
・INITIALIZATION
・START-OF-SELECTION
・TOP-OF-PAGE
・AT SELECTION-SCREEN
など
LOAD-OF-PROGRAM
プログラムが呼び出されるごとに1回トリガーされるイベント。
主に外部から呼び出されたときにグローバルデータを初期化するために使用する。
INITIALIZATION
実行可能プログラムが実行されたときにトリガーされるイベント。
LOAD-OF-PROGRAMイベントが存在する場合、その直後にトリガーされる。
選択画面が存在する場合は選択画面がユーザーに表示される前にトリガーされる。
なので選択画面の入力項目を初期化したりデフォルト値を設定したりする。
プログラム中で使うすべての変数を初期化するという使い方が多いだろう。
プログラム実行時に1回のみトリガーされるため、このイベントが終わった後に再度選択画面を呼び出すようなロジックにしてもINITIALIZATIONイベントはトリガーされないという点に注意が必要だ。
START-OF-SELECTION
実行可能プログラムで使用できるイベントで、INITIALIZATIONイベントの次、選択画面での処理が完了した後にトリガーされる。
このイベントは標準イベントとなるため、明示的にイベントの中に書かれていない処理は自動的にこのイベントに割り当てられる。
グローバル宣言領域(「DATA」などで宣言する部分)と最初に書かれているイベントの間に書かれた処理については、自動的にSTART-OF-SELECTIONイベントの先頭に挿入される。
イベントを意識して書いていかないと思わぬ順番で動いてしまったりするので覚えておこう。
データ取得など主な処理はこのイベントの中で実行する。
END-OF-SELECTION
START-OF-SELECTIONイベントの後にトリガーされるイベント。
START-OF-SELECTIONで取得・編集などしたデータを出力することが多い。
SELECTION SCREEN
実行可能プログラムやモジュールプールプログラム、汎用グループで使用可能なイベント。
選択画面の制御(条件によって入力項目の可/不可を動的に変更するなど)を行うロジックを書くのはここ。
このイベントがトリガーされるのは選択画面が定義されてる場合のみ。
このイベントには種類が2つあり、基本はAT SELECTION-SCREENを使用する。
こちらは、ユーザーが選択画面で何か入力したりするとトリガーされる=入力チェックなどに使用可能だ。
もう1つはAT SELECTION-SCREEN OUTPUTでこちらは選択画面でエンターキーや実行ボタンを押すことでトリガーされる。
LIST EVENT
一覧画面(WRITEなど使用したときの結果画面)用のイベントがこのLIST EVENT。次の5つが存在する。
・TOP-OF-PAGE
→ヘッダー作成に使用
・TOP-OF-PAGE DURING LINE-SELECTION
→新しいページの最初の行が出力される直前にトリガーされる。
・END-OF-PAGE
→フッター作成に使用
・AT USER-COMMAND
→ツールバーのボタンを押すことがトリガー。
・AT LINE-SELECTION
→出力結果をダブルクリックすることがトリガー。
SCREEN EVENT
SCREEN Painterなどを使用して作成された画面でトリガーされるイベント。
次の4つが存在する。
・PBO process before output
→画面が表示される前にトリガーされる
・PAI process after input
→画面でユーザーが操作したときにトリガーされる
・POH process on help request
→F1ヘルプを実行するとトリガーされる
・POV process on value request
→F4ヘルプを実行するとトリガーされる
コメント