Construct a function to display records from a file.

Files Involved

Physical file CUSMST (customer master file)

RDML Program - Version 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 Program - Version 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

Points to Note:

  • Both versions keep doing inquiries until the EXIT or MENU function key is used (BEGIN_LOOP and END_LOOP commands).
  • The EXIT and MENU function keys are enabled on the REQUEST and DISPLAY screens by default. If either key is used the function will end.
  • The first version uses the NOT_FOUND and ISSUE_MSG parameters of the FETCH command to automatically cause a "not found" message to be issued and then to return control to the request command.
  • The second version uses the IF_STATUS command to check if the record was found. If it was it is displayed, else a message is issued that will appear on line 22/24 of the REQUEST screen.
  • No labels