117 lines
2.5 KiB
Plaintext
117 lines
2.5 KiB
Plaintext
FUNCTION SAVEGETS
|
|
// PRESERVE ALL THE GETS GENERATED
|
|
|
|
LOCAL SAVELIST
|
|
|
|
SAVELIST := ACLONE(GETLIST)
|
|
RETURN SAVELIST
|
|
|
|
***************************
|
|
FUNCTION RESTGETS(SAVELIST, ACTIVE_ELEM)
|
|
// RESTORE ALL THE SAVED GETS
|
|
// AND SET THE FOCUS ON ACTIVE ELEM
|
|
|
|
|
|
LOCAL L
|
|
|
|
GETLIST := ACLONE(SAVELIST)
|
|
IF ACTIVE_ELEM = NIL
|
|
ELSE
|
|
IF ACTIVE_ELEM > 0 .AND. ACTIVE_ELEM <= LEN(GETLIST)
|
|
FOR L = 1 TO LEN(GETLIST)
|
|
IF L = ACTIVE_ELEM
|
|
GETLIST[L]:SETFOCUS()
|
|
ELSE
|
|
GETLIST[L]:KILLFOCUS() // TERMINATE THE GET IF ACTIVE
|
|
ENDIF
|
|
NEXT
|
|
ENDIF
|
|
ENDIF
|
|
|
|
RETURN GETLIST
|
|
|
|
***************************
|
|
FUNCTION FIND_GETELEM(VAR_NAME)
|
|
// GET THE ELEMENT FOR VAR_NAME IN THE GETLIST
|
|
|
|
LOCAL ELEM
|
|
ELEM = ASCAN(GETLIST, {|XX| XX[7] == VAR_NAME})
|
|
RETURN ELEM
|
|
|
|
|
|
|
|
***************************
|
|
FUNCTION ACTIVE_GET
|
|
// GET THE ELEMENT FOR THE ACTIVE GET IN THE GETLIST
|
|
|
|
LOCAL ELEM, X, SEARCH_VAL, MSUBSCRIPT
|
|
|
|
X := GETACTIVE() // GET CURRENT ACTIVE GET
|
|
IF EMPTY(X) // NOT IN A READ!
|
|
RETURN 0
|
|
ENDIF
|
|
|
|
MSUBSCRIPT = X:SUBSCRIPT
|
|
SEARCH_VAL = X[7] // VARIABLE NAME TO SEARCH FOR IN GETLIST
|
|
|
|
|
|
IF EMPTY(MSUBSCRIPT)
|
|
ELEM = ASCAN(GETLIST, {|XX| XX[7] == SEARCH_VAL})
|
|
ELSE
|
|
SS1 = MSUBSCRIPT[1]
|
|
SS2 = MSUBSCRIPT[2]
|
|
ELEM = ASCAN(GETLIST, {|XX| (XX[7] == SEARCH_VAL .AND. SS1==XX[2,1] .AND. SS2==XX[2,2]) })
|
|
ENDIF
|
|
|
|
RETURN ELEM
|
|
|
|
|
|
|
|
|
|
********************************************************
|
|
FUNCTION UPDATE_GETS(MARR)
|
|
// UPDATE THE GET INFO ON THE SCREEN
|
|
|
|
LOCAL SAVESEL := SELECT(), EVALVAL
|
|
LOCAL NCOLOR, NPOS, VAR, VALU
|
|
LOCAL ELEM, SEARCH_VAR
|
|
|
|
ELEM = ACTIVE_GET() // GET ELEMENT OF ACTIVE GET IN THE GETLIST
|
|
IF ELEM > 0
|
|
|
|
GETLIST[ELEM]:KILLFOCUS() // TERMINATE THE CURRENT GET
|
|
FOR L = 1 TO LEN(MARR)
|
|
VAR = TRIM(MARR[L,1])
|
|
SEARCH_VAR = VAR
|
|
IF LEN(MARR[L]) = 2
|
|
SEARCH_VAR = TRIM(MARR[L,2])
|
|
ENDIF
|
|
VALU = &VAR
|
|
|
|
// READMODAL WILL ONLY DISPLAY() CHARACTER VALUES!
|
|
DO CASE
|
|
CASE VALTYPE(VALU) = 'N'
|
|
VALU = STR(VALU)
|
|
|
|
CASE VALTYPE(VALU) = 'D'
|
|
VALU = DTOC(VALU)
|
|
|
|
ENDCASE
|
|
|
|
|
|
|
|
ELEM = ASCAN(GETVARS, {|X| TRIM(X[3]) == SEARCH_VAR})
|
|
IF ELEM > 0 .AND. !EMPTY(GETLIST[ELEM]:BUFFER)
|
|
GETLIST[ELEM]:SETFOCUS() // MUST SET FOCUS TO DO THE FOLLOWING
|
|
NCOLOR = GETLIST[ELEM]:COLORSPEC() // GET THE CURRENT COLORS
|
|
GETLIST[ELEM]:BUFFER = VALU // STUFF THE BUFFER
|
|
GETLIST[ELEM]:ASSIGN() // UPDATE THE GET VAR
|
|
GETLIST[ELEM]:DISPLAY() // PUT VALUE ON THE SCREEN (DUMPS BUFFER)
|
|
GETLIST[ELEM]:KILLFOCUS() // TERMINATE THE GET
|
|
ENDIF
|
|
NEXT
|
|
ENDIF
|
|
|
|
SELECT(SAVESEL)
|
|
RETURN .T.
|
|
|