[ |../../index.htm#lansa/l4wdev06_0795.htm]
現在地:

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フォームに変換するときに、以下のようにできます。

[ |../../index.htm#lansa/l4wdev06_0795.htm]