Versions Compared

Key

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

...

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

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

    詳細タブのClickイベントのアイコンが変化し、イベントのルーチンが指定されたことを示します。
    Image Removed
    Image Added
  3. 取得ボタンのClickイベントに以下のコードを追加します。
         EVTROUTINE HANDLING(#GET.Click)
       change #surname #partname
       clr_list #ltvW_1
       SELECT FIELDS(#ltvw_1) FROM_FILE(PSLMST2) WITH_KEY(#SURNAME) GENERIC(*YES)
          add_entry #ltvw_1
       endselect 
    ENDROUTINE
    イベント・ルーチンは、#PARTNAMEフィールドに入力された値を#SURNAMEに割り当てます。それからリスト・ビューをクリアします。SELECTのループで名字が#SURNAMEの値と一致するすべての社員を選択し、エントリーをリスト・ビューに追加します。

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

  5. 新しい社員を入力するイベント・ルーチンを記述します。
    作成ボタンのClickイベントのルーチンを作成します。イベントを使用してすべてのフィールドをブランクにし、新しい社員の詳細を入力できるようにします。
    EVTROUTINE HANDLING(#NEW.Click)
      change #allflds *Null
    ENDROUTINE
     
  6. 社員を削除するイベント・ルーチンを記述します。
    現在選択されている社員を削除する削除ボタンのClickイベントのルーチンを作成します。
    EVTROUTINE HANDLING(#DELETE.CLICK)
    DELETE FROM_FILE(PSLMST) WITH_KEY(#EMPNO) ISSUE_MSG(*YES)
    ENDROUTINE

  7. 変更を保存するイベント・ルーチンを記述します。
    既存の社員を更新したり、新しい社員の詳細を挿入するための保存ボタンのClickイベントのイベント・ルーチンを作成します。
    EVTROUTINE HANDLING(#SAVE.CLICK)
    check_for in_file(pslmst) with_key(#empno) val_error(*next)
    if_status is(*EQUALKEY)
          UPDATE FIELDS(#ALLFLDS) IN_FILE(PSLMST) WITH_KEY(#EMPNO) ISSUE_MSG(*YES)
         IF_STATUS IS(*OKAY)
            MESSAGE MSGTXT('Employee details have been updated.')
        endif 
    else
          INSERT FIELDS(#ALLFLDS) TO_FILE(PSLMST)  ISSUE_MSG(*YES)
          IF_STATUS IS(*OKAY)
             MESSAGE MSGTXT('Employee details have been added.')
          endif 
       endif 
    ENDROUTINE
     

...