You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

[ |../../index.htm#lansa/l4wdev05_0130.htm]
現在地:

4.3.2 簡単な問い合わせ処理

ファイルからレコードを検索し、表示するファンクションを作成します。
処理対象ファイル
物理ファイル「CUSMST」(顧客マスター)
RDMLプログラム - その1
    GROUP_BY   NAME(#CUSTOMER) FIELDS(#CUSTNO #NAME #ADDL1                 #ADDL2 #ADDL3)     BEGIN_LOOP L10 REQUEST    FIELD(#CUSTNO)     FETCH      FIELDS(#CUSTOMER) FROM_FILE(CUSMST)                 WITH_KEY(#CUSTNO) NOT_FOUND(L10)                 ISSUE_MSG(*YES)     DISPLAY    FIELDS(#CUSTOMER)     END_LOOP
 
RDMLプログラム - その2
    GROUP_BY   NAME(#CUSTOMER) FIELDS(#CUSTNO #NAME #ADDL1                 #ADDL2 #ADDL3)     BEGIN_LOOP     REQUEST    FIELD(#CUSTNO)     FETCH      FIELDS(#CUSTOMER) FROM_FILE(CUSMST)                 WITH_KEY(#CUSTNO)        IF_STATUS  IS(*OKAY)        DISPLAY    FIELDS(#CUSTOMER)        ELSE        MESSAGE    MSGTXT('No customer exists with this number')        ENDIF     END_LOOP
 
着目点:

  • その1、その2とも、BEGIN_LOOP~END_LOOPのブロック内で、ファンクション・キーEXITまたはMENUが押されるまでの間、問い合わせに応じて検索結果を表示する、という処理を繰り返します。
  • ファンクション・キーEXITとMENUは、デフォルトでREQUEST/DISPLAY画面に表示されます。いずれかのキーを押すとファンクションは終了します。
  • プログラムその1では、FETCHコマンドのNOT_FOUNDパラメータ、ISSUE_MSGパラメータを使って、レコードが見つからない場合自動的にその旨のメッセージを表示した後、REQUESTコマンドに制御を戻すようにしています。
  • プログラムその2では、レコードが見つかったかどうかをIF_STATUSコマンドで判断しています。見つかった場合はその内容を表示し、見つからなかった場合はREQUEST画面の22/24行目にその旨のメッセージを表示します。

[ |../../index.htm#lansa/l4wdev05_0130.htm]

  • No labels