Macro: ENTER
// 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