LANSAファンクションのIF_MODEステートメントの記述は、Visual LANSAのイベント・ルーチンの記述に対応します。例えば、LANSAファンクションでは、通常は*DELETEモードをテストするIF_MODEステートメントにDELETEステートメントを記述してアイテムを削除していました。Visual LANSAでは、削除ボタンのClickイベントにDELETEステートメントを置きます。
LANSAファンクション | Visual LANSAフォーム |
|---|---|
IF_MODE IS(*DELETE) | EVTROUTINE HANDLING(#DELETE.CLICK) |
IFステートメント内のコードが条件がtrueの場合に限り実行されるのと同じように、削除ボタンのClickイベントのコードは、ボタンをクリックしたときに限り実行されます。
コードがイベント・ルーチンに分割されるので、制御の構造のネストが少なくなり、イベント・ドリブン・プログラムのほうが簡単だと感じられます。また、アクションを発生させたコンポーネントとイベントを即座に見る場合に、プログラムを追うのが簡単です。
最も簡単な場合は、既存のLANSAファンクションをVisual LANSAフォームに変換するときに、以下のようにできます。
- 追加、変更、削除など、ファンクションで使用されるモードに対応するボタンを作成する
- 対応するボタンのClickイベントに、IF_MODEステートメントからRDMLをコピーする