Magicエンジン > ユーザ定義イベント > イベントテーブル
Magic エンジンが[イベント]ロジックユニットとして定義されている一連の処理コマンドを実行する前に、終了するレベルを指定します。
N=なし どのレベルに対しても終了処理を行わず、イベントが発生したコントロールの編集モード内でハンドラ処理を実行します。
E=編集 イベントを実行する前に既存のコントロールの編集モードを終了します。Magic エンジンは、以下の順番に処理を実行します。
編集モードを終了します。
編集項目の内容を更新します。
更新された項目に関係する全ての値を再計算します。
データが変更されたら[項目変更]ロジックユニットを実行します。
[イベント]ロジックユニットラを実行します。
コントロールの編集モードに戻ります。
実行されたハンドラ内でコントロール項目を参照する場合、その項目は編集された値として参照されます。
このオプションはエディット、リッチエディット、および複数選択のリストボックスコントロールで有効で、編集状態の時に項目の内容と異なる値の場合に更新されます。
C=コントロール イベントを実行する前に現在のコントロールレベルを終了します。Magic エンジンは、以下の順番に処理を実行します。
編集モードを終了します。
編集項目の内容を更新します。
更新された項目に関係する全ての値を再計算します。
[項目変更]ロジックユニットを実行します。
[コントロール検証]と[コントロール後]のロジックユニットを実行します。
[イベント]ロジックユニットを実行します。
[コントロール前]ロジックユニットを実行します。
コントロールの編集モードに戻ります。
R=レコード更新前 イベントを実行する前に現在のレコードレベルを終了します。Magic エンジンは、以下の順番に処理を実行します。
編集モードを終了します。
編集項目の内容を更新します。
更新された項目に関係する全ての値を再計算します。
[項目変更]ロジックユニットを実行します。
[コントロール検証]及び[コントロール後]のロジックユニットを実行します。
レコードが変更された場合、[レコード後]ロジックユニットを実行します。
レコードが変更された場合、テーブルのレコードを更新します。
[イベント]ロジックユニットを実行します。
レコードが更新された場合、テーブルを更新します。
[レコード前]ロジックユニットを実行します。
[コントロール前]ロジックユニットを実行します。
コントロールの編集モードに戻ります。
イベントレベルが実行された場合、レコードはまだ更新されていないため、イベントレベルからレコードを参照してもレコードがまだ更新されていないものと見なされます。
P=レコード更新後 イベントは対応するハンドラを実行する前に現在のレコードを終了し、更新するさせます。このイベントを処理するとすぐに、以下の処理が連続して実行されます。
編集モードを終了します。
項目を更新します。
更新された項目をもとに再計算処理が実行されます。
[項目変更]/[コントロール検証]/[コントロール後]ロジックユニットを実行します。
レコードが修正されていた場合、[レコード後]ロジックユニットを実行します。
レコードが修正されていた場合、レコードを更新します。
[レコード前]ロジックユニットを実行します。
[イベント]ロジックユニットを実行します。
[コントロール前]ロジックユニットを実行します。
イベントレベルが実行された場合、レコードはすでに更新されているので、イベントレベルからレコードを参照すると、更新された内容として参照できます。
注意: |
Magicが対応するハンドラを検索する場合、ユーザイベントの公開名を使用するため、メインプログラムでは、ユーザイベントの公開名を設定 |