Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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

...

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

LANSAファンクション

Visual LANSAフォーム

 
   IF_
MODE IS
MODE IS(*DELETE)

     DELETE FROM
 
    DELETE FROM_FILE(PSLMST)
 
 
ENDIF
 
EVTROUTINE HANDLING
   EVTROUTINE HANDLING(#DELETE.CLICK)

   DELETE FROM
 
   DELETE FROM_FILE(PSLMST)
 WITH
 WITH_KEY(#EMPNO)
 
ENDROUTINE 
 
ENDROUTINE

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

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

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

  • 追加、変更、削除など、ファンクションで使用されるモードに対応するボタンを作成する
  • 対応するボタンのClickイベントに、IF_MODEステートメントからRDMLをコピーする

...