2.3.4 LANSAのファンクションとフォームの操作

前の例では、簡単にコードを比較できるように簡潔にしていました。2つのプログラミングの手法でできることを実際に見るために、ここでは「・・・の処理」タイプのLANSAファンクションとVisual LANSAフォームでのアプリケーションの実装の例を取り上げます。

どちらのアプリケーションも、サンプル・ファイルPSLMSTの情報を管理します。従業員の名字でキーになったファイルの論理ビューを使用します。これらを使用して従業員の詳細の表示、編集、削除を行います。

LANSAファンクションは、FRMWRK1テンプレートを使用して作成されました。名字の一部を入力し、表示される従業員を限定できる画面があります。

Image17

OKをクリックすると、社員の処理画面が表示されます。この画面には、名前の一部が一致する従業員のリストが表示されます。OPTフィールドに番号を入力し、従業員情報を表示、変更、削除できます。

Image16

変更オプションを選択すると、入力フィールドの画面が表示されます。

Image15

同様に、詳細オプションと削除オプションを選択すると、同じ情報を表示する画面が表示されますが、入力はできないようになっています。

以下に注意してください。

Visual LANSAアプリケーションは、1つのフォームで構成されます。上のLANSAファンクションと同じアクションを実行します。以下のものがあります。

以下に注意してください。

このようなアプリケーションを作成できるのは、個々のコントロールが自分のイベント・ルーチンを持つからにすぎません。イベント・ルーチンは、個々に実行されるので、以下のようにユーザーのアクションによってウィンドウを動的に変更できます。

 

EVTROUTINE HANDLING(#Get.Click)
   change #surname #partname
   clr_list #list_1
   SELECT FIELDS(#list_1) FROM_FILE(PSLMST2)     
   WITH_KEY(#SURNAME) GENERIC(*YES)
       add_entry #list_1
   ENDSELECT  
ENDROUTINE  

 

 

EVTROUTINE HANDLING(#List_1.ItemGotSelection)
     FETCH FIELDS(#ALLFLDS) FROM_FILE(PSLMST) WITH_KEY(#EMPNO) 
ENDROUTINE  

 

 

EVTROUTINE HANDLING(#SAVE.CLICK)
     UPDATE FIELDS(#ALLFLDS) IN_FILE(PSLMST) WITH_KEY(#EMPNO) 
ENDROUTINE  
 

 

EVTROUTINE HANDLING(#DELETE.CLICK)
     DELETE FROM_FILE(PSLMST) WITH_KEY(#EMPNO) 
ENDROUTINE  

 

このようなアプリケーションは、LANSA ファンクションでは画面が全体的に処理されるので、実装できません。