2.3.2.3 多くの場合、モードのコードは、イベント・ルーチンとなる

LANSAファンクションのIF_MODEステートメントの記述は、Visual LANSAのイベント・ルーチンの記述に対応します。例えば、LANSAファンクションでは、通常は*DELETEモードをテストするIF_MODEステートメントにDELETEステートメントを記述してアイテムを削除していました。Visual LANSAでは、削除ボタンのClickイベントにDELETEステートメントを置きます。

LANSAファンクション

Visual LANSAフォーム

 

IF_MODE IS(*DELETE)

     DELETE FROM_FILE(PSLMST) 

ENDIF

 

EVTROUTINE HANDLING(#DELETE.CLICK)

   DELETE FROM_FILE(PSLMST) WITH_KEY(#EMPNO) 

ENDROUTINE 

 

IFステートメント内のコードが条件がtrueの場合に限り実行されるのと同じように、削除ボタンのClickイベントのコードは、ボタンをクリックしたときに限り実行されます。

コードがイベント・ルーチンに分割されるので、制御の構造のネストが少なくなり、イベント・ドリブン・プログラムのほうが簡単だと感じられます。また、アクションを発生させたコンポーネントとイベントを即座に見る場合に、プログラムを追うのが簡単です。

最も簡単な場合は、既存のLANSAファンクションをVisual LANSAフォームに変換するときに、以下のようにできます。