The simplest types of prompt key processing programs are the ones that display a list of values to the user.

The previous example that handled department number prompts would probably look like this (it does not use page at a time techniques because there are only 20 or so departments):

      << define browse list and exchange list >>
 
        DEF_LIST  NAME(#DEPTS) FIELDS(#DEPTNO #DEPTDESC)
                  SEL_ENTRY(#CURSORSEL)
        EXCHANGE  FIELDS(#DEPTS) OPTION(*ALWAYS)
 
  << clear list and place details of all departments into it  >>
 
        CLR_LIST  NAMED(#DEPTS)
        SELECT    FIELDS(#DEPTS) FROM_FILE(DEPTFILE)
        ADD_ENTRY TO_LIST(#DEPTS)
        ENDSELECT
 
  << Display list in pop-up window until user selects or cancels >>
 
        CHANGE    FIELDS(#DEPTS) TO(*NULL)
        DOUNTIL   COND('#CURSORSEL *GT 0')
        POP_UP    BROWSELIST(#DEPTS) CURSOR_LOC(*ATFIELD #DEPTNO)
                  EXIT_KEY(*NO) MENU_KEY(*YES *RETURN)
        IF       COND('#CURSORSEL *GT 0')
        GET_ENTRY NUMBER(#CURSORSEL) FROM_LIST(#DEPTS)
        ENDIF
        ENDUNTIL
        RETURN
  • No labels