Versions Compared

Key

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

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

...

ユーザー・インターフェースが完了したので、コードを記述します。ソースタブをクリックし、フォームにソース・コードを表示します。フォームに置いたコントロールとフィールドのDEFINE_COMステートメントがエディターに自動的に作成されていることに注目してください。これらのステートメントは、コンポーネントに定義されたプロパティを示します。

3a.すべての社員の詳細フィールドのグループを作成する

社員の詳細フィールドを簡単に処理できるよう、グループ化します。  

     GROUP_

...

BY NAME(#ALLFLDS)

...

 FIELDS(#EMPNO #SURNAME #GIVENAME #ADDRESS1 #ADDRESS2 #ADDRESS3 #POSTCODE #PHONEHME #PHONEBUS #STARTDTE #TERMDATE #DEPTMENT #SECTION #SALARY #MNTHSAL)

3b.取得ボタンのイベント・ルーチンを記述する

...

  1. 名字の一部をもとにリストにデータを表示するコードを記述するには、詳細タブを表示し、リストの取得ボタンを選択し、イベントタブを1番上に持ってきます。

  2. Clickイベントをダブルクリックします。エディターにより、ソースビューにEVTROUTINEステートメントとENDROUTINEステートメントが挿入されました。

    Image Added

    詳細タブのClickイベントのアイコンが変化し、イベントのルーチンが指定されたことを示します。

    Image Added
  3. 取得ボタンのClickイベントに以下のコードを追加します。
         EVTROUTINE HANDLING(#GET.Click)

...


  1.    change #surname #partname
       clr_list #ltvW_1
       SELECT FIELDS(#ltvw_1)

...

  1.  FROM_FILE(PSLMST2)

...

  1.  WITH_KEY(#SURNAME)

...

  1.  GENERIC(*YES)

...


  1.       add_entry #ltvw_1
       endselect 
    ENDROUTINE
    イベント・ルーチンは、#PARTNAMEフィールドに入力された値を#SURNAMEに割り当てます。それからリスト・ビューをクリアします。SELECTのループで名字が#SURNAMEの値と一致するすべての社員を選択し、エントリーをリスト・ビューに追加します。

  2. 社員の詳細を取得するイベント・ルーチンを記述します。
    1. リスト・ビューのItemGotSelectionイベントを呼び出すClickイベント・ルーチンを作成します。このイベントは、ユーザーがリスト・ビューの社員を選択したときにトリガーされます。
    2. ここで、選択された社員のコードを取得する以下のコードを記述します。
       EVTROUTINE HANDLING(#LTVW_1.ItemGotSelection)

...


    1.   FETCH FIELDS(#ALLFLDS)

...

    1.  FROM_FILE(PSLMST)

...

    1.  WITH_KEY(#EMPNO)

...

    1.  ISSUE_MSG(*YES)

...


    1. ENDROUTINE

  1. 新しい社員を入力するイベント・ルーチンを記述します。
    作成ボタンのClickイベントのルーチンを作成します。イベントを使用してすべてのフィールドをブランクにし、新しい社員の詳細を入力できるようにします。

...

  1. EVTROUTINE HANDLING(#NEW.Click)

...


  1.   change #allflds *Null

...


  1. ENDROUTINE
     

...

  1. 社員を削除するイベント・ルーチンを記述します。
    現在選択されている社員を削除する削除ボタンのClickイベントのルーチンを作成します。

...

  1. EVTROUTINE HANDLING(#DELETE.CLICK)

...


  1. DELETE FROM_FILE(PSLMST)

...

  1.  WITH_KEY(#EMPNO)

...

  1.  ISSUE_MSG(*YES)

...


  1. ENDROUTINE

  2. 変更を保存するイベント・ルーチンを記述します。
    既存の社員を更新したり、新しい社員の詳細を挿入するための保存ボタンのClickイベントのイベント・ルーチンを作成します。

...

  1. EVTROUTINE HANDLING(#SAVE.CLICK)
    check_

...

  1. for in_file(pslmst)

...

  1.  with_key(#empno)

...

  1.  val_error(*next)
    if_

...

  1. status is(*EQUALKEY)

...


  1.       UPDATE FIELDS(#ALLFLDS)

...

  1.  IN_FILE(PSLMST)

...

  1.  WITH_KEY(#EMPNO)

...

  1.  ISSUE_MSG(*YES)

...


  1.      IF_STATUS IS(*OKAY)

...


  1.         MESSAGE MSGTXT('Employee details have been updated.')
        endif 
    else
          INSERT FIELDS(#ALLFLDS) TO_FILE(PSLMST)

...

  1.   ISSUE_MSG(*YES)

...


  1.       IF_STATUS IS(*OKAY)
             MESSAGE MSGTXT('Employee details have been added.')
          endif 
       endif 
    ENDROUTINE
     

イベント・ルーチンでは、最初に社員が存在するかどうかをチェックします。存在する場合は、社員の詳細を更新します。社員番号に一致するレコードがない場合は、社員の詳細を挿入します。メッセージは、更新と挿入の後に表示されます。          MESSAGE MSGTXT('Employee details have been added.')        endif      endif   ENDROUTINE    
イベント・ルーチンでは、最初に社員が存在するかどうかをチェックします。存在する場合は、社員の詳細を更新します。社員番号に一致するレコードがない場合は、社員の詳細を挿入します。メッセージは、更新と挿入の後に表示されます。
[ Image Removed |../../index.htm#lansa/l4wdev06_0285.htm]