Macro: ENTER

Module location: FMACDD line 691 (view source)

  //              INDICATE CONTINUE TRUE
  #REPLACE CONTINUE |!C
  !A [] $4028 |CI0 |CI0 CONTINUE~
  //              INDICATE ENT$QUERY FALSE
  #REPLACE ENT$QUERY |9
  !A [] $4028 |CI0 |CI0 |9
  #IF !0>0            // ENT$QUERY tells us if
    #SET X$ !1.RECNUM           // we are in QUERY(SUPERFIND) mode
  #ELSE
    #SET X$ 0
  #ENDIF
  //MOVEINT |CI!x TO |VI8     // set ENTMFILE (ENTER's main file variable)
  !A [] $82 |CI!x |VI8        // to main file for ENTSFIND
  ENT$LP:             // start of enter loop
  //              GOSUB ENTRYSEC      // do ENTRY section
  !A [] $042 |CL0
  #FREF ENTRYSEC !a
  //[KEY.ESCAPE]      GOTO END_ENTER      // dropped thru
  !A [|103] $041 |CL0
  #FREF END_ENTER !a
  //              INDICATE ERR FALSE      // set error false
  !A [] $4028 |CI0 |CI0 |127
  // temp disable ON ERROR
  !A [] $82 |VI31 |VI32
  !A [] $82 |CI0 |VI31
  // REREAD command
  !A [] $0C9
  //[ENT$QUERY]       GOSUB ENTER.EDIT    // user procedure
  !A [|9] $042 |CL0
  #FREF ENTER.EDIT !a
  //[NOT ERR]         ENTUPDATE       // update files from ENTRY
  !A [~|127] $280 |CI0
  //[NOT ERR]         GOSUB ENTER.SAVE    // user procedure
  !A [~|127] $042 |CL0
  #FREF ENTER.SAVE !a
  [NOT ERR]       MULTIBACK$ SAVE !1 !2 !3 !4 !5 !6 !7 !8 !9  // save
  // UNLOCK command
  !A [] $0C8
  //[NOT ERR]         GOSUB ENT$CLEAR     // clear screen
  !A [~ |127] $042 |CL0
  #FREF ENT$CLEAR !a
  // RE ENABLE ON ERROR
  !A [] $82 |VI32 |VI31
  //[CONTINUE]        GOTO ENT$LP         // loop
  !A [CONTINUE] $041 ENT$LP
  //              GOTO END_ENTER      // end if NOT CONTINUE
  !A [] $041 |CL0
  #FREF END_ENTER !a
  // this clears the screen and all data files
  ENT$CLEAR:          MULTIBACK$ CLEAR !1 !2 !3 !4 !5 !6 !7 !8 !9
  //              INDICATE ENT$QUERY FALSE
  !A [] $4028 |CI0 |CI0 |9
  //              ENTCLEAR - clear ENTRY section
  !A [] $284
  //              RETURN
  !A [] $043 |CI0
  //<<<<<<< STANDARD KEY PROCEDURES FOR ENTER >>>>>>>>>>
  //KEYPROC KEY.SAVE
  ENTER$.SAVE:
  !A []           $285 //ENTSKIP (skip rest of entries)
  #KEYPROC 9 !a
  //              RETURN
  !A [] $043 |CI0
  //KEYPROC KEY.DELETE
  //              INDICATE ERR FALSE      //default
  ENTER$.DELETE:
  !A [] $4028 |CI0 |CI0 |127
  #KEYPROC 10 !a
  // DISABLE ON ERROR
  !A [] $82 |VI31 |VI32
  !A [] $82 |CI0 |VI31
  //              REREAD
  !A [] $C9
  //[NOT ENT$QUERY]   ERROR 71    // check for active record
  !A [~|9] $47 |CI71
  //[NOT ERR]         GOSUB ENTER.DELETE      // user procedure
  !A [~|127] $042 |CL0
  #FREF ENTER.DELETE !a
  //[NOT ERR]         GOSUB ENTER.EDIT    // user procedure
  !A [~|127] $042 |CL0
  #FREF ENTER.EDIT !a
  //[NOT ERR]         DELETE !1       // delete records
  !A [~|127] $C3 !1.RECNUM
  [NOT ERR]       MULTIBACK$ SAVE !2 !3 !4 !5 !6 !7 !8 !9 // related
  //              UNLOCK
  !A [] $C8
  //[NOT ERR]         GOSUB ENT$CLEAR       // clear systems
  !A [~|127] $042 ENT$CLEAR
  // enable ON ERROR
  !A [] $82 |VI32 |VI31
  //              RETURN ENTRYSEC
  !A [] $43
  #FREF ENTRYSEC !a
  // will GOSUB here for all find keys //
  //              INDICATE WAS$QUERY GROUP ANY [ENT$QUERY]
  ENTER$.FIND:
  #REPLACE WAS$QUERY |!C
  !A [] $4020 |GB[|9] |GB[0] WAS$QUERY IN$GLANY |3
  #KEYPROC 8 !a // SUPERFIND
  #KEYPROC 7 !a // FIND
  #KEYPROC 15 !a // NEXT
  #KEYPROC 14 !a // PREVIOUS
  //[KEY.SFIND]       INDICATE ENT$QUERY TRUE
  !A [|108] $4028 |CI0 |CI0 |9~
  //[NOT ENT$QUERY]   INDICATE ENT$QUERY AS |CI!x EQ |VI15    // query mode?
  !A [~ |9] $4008 |CI!x |VI15 |9 |2
  //[KEY.SFIND]         ENTSFIND GE
  !A [|108] $282 |CI3
  //[KEY.FIND][ENT$QUERY][ENT$PERMISSIVE] ENTFIND GE
  !A [|107 |9 |10] $281 |CI3
  //[KEY.FIND][ENT$QUERY][NOT ENT$PERMISSIVE] ENTSFIND GE   // yes, SUPERFIND
  !A [|107 |9 ~ |10] $282 |CI3
  //[KEY.FIND][NOT ENT$QUERY]     ENTFIND GE        // no, FIND
  !A [|107 ~ |9] $281 |CI3
  //[KEY.NEXT][ENT$QUERY]   ENTSFIND GT     // yes, SUPERFIND
  !A [|115 |9] $282 |CI4
  //[KEY.NEXT][NOT ENT$QUERY]     ENTFIND GT        // no, FIND
  !A [|115 ~ |9] $281 |CI4
  //[KEY.PREVIOUS][ENT$QUERY]     ENTSFIND LT       // yes, SUPERFIND
  !A [|114 |9] $282 |CI0
  //[KEY.PREVIOUS][NOT ENT$QUERY] ENTFIND LT        // no, FIND
  !A [|114 ~ |9] $281 |CI0
  [FINDERR]       INDCT$GROUP ENT$QUERY GROUP ANY [WAS$QUERY]
  //!A [FOUND]        $283            // display records
  !A [FOUND] $042 ENTER$DISPLAY
  //              ENTAGAIN        // same window
  !A [] $287
  //              RETURN
  !A [] $43 |CI0
  ////// define ENTER's KEY PROCedures ////////////
  // KEYPROC BACKFIELD
  //              BACKFIELD
  ENTER$.FIELD:
  !A [] $288
  #KEYPROC 16 !a
  #KEYPROC 6 !a
  ENTXRET://          RETURN
  !A [] $43 |CL0
  // KEYPROC CLEARSCREEN
  ENTER$.CLEAR:
  //              INDICATE ERR FALSE
  !A [] $4028 |CI0 |CI0 |127
  #KEYPROC 13 !a
  //              GOSUB ENTER.CLEAR
  !A [] $042 |CL0
  #FREF ENTER.CLEAR !a
  //[NOT ERR]         GOSUB ENT$CLEAR
  !A [~ |127] $042 ENT$CLEAR
  //              RETURN ENTRYSEC
  !A [] $043
  #FREF ENTRYSEC !a
  // KEYPROC ESCAPE key
  ENTER$.ESCAPE:
  //              INDICATE ERR FALSE
  !A [] $4028 |CI0 |CI0 |127
  #KEYPROC 3 !a
  //              GOSUB ENTER.EXIT
  !A [] $42 |CL0
  #FREF ENTER.EXIT !a
  //[NOT ERR]         RETURN ENTXRET
  !A [~ |127] $43 ENTXRET
  //              RETURN
  !A [] $43 |CI0
  //KEYPROC KEY.HELP
  //HELP
  ENTER$.HELP:
  !A [] $1C5 |CI0
  #KEYPROC 18 !a
  //ENTAGAIN
  !A [] $287
  //RETURN
  !A [] $43 |CI0
  //KEYPROC KEY.PRINT
  //output current page
  ENTER$.PRINT:
  !A [] $202 |VI9
  #KEYPROC 2 !a
  //ENTAGAIN and RETURN
  !A [] $287
  !A [] $43 |CI0

  ENTRYSEC://         ENTERMODE       // start entry section
  !A [] $82 |CI!a |VI14
  !A [] $286