home *** CD-ROM | disk | FTP | other *** search
- // Gets06.prg
- //
- // Example illustrating issuing gets from database
- // Edit to Memvar
-
- MEMVAR GetList
-
- #include "Inkey.ch"
-
- FUNCTION Gets06
-
- FIELD ScrName, FldNum
-
- USE Screens NEW
- IF !File("Screens.ntx")
- INDEX ON Upper(ScrName) + Str(FldNum, 3) TO Screens
- ELSE
- SET INDEX TO Screens
- ENDIF
- USE Test NEW SHARED
- ReadScreen("TEST")
-
- RETURN NIL
-
-
- FUNCTION ReadScreen(cScrName)
-
- FIELD ScrName, SayRow, SayCol, SayString, ;
- SayPict, SayColor IN Screens
-
- FIELD GetRow, GetCol, GetFld, GetPict, ;
- GetWhen, GetValid, GetColor IN Screens
-
- LOCAL aTemps := {}
- LOCAL aGsbs := {}
- LOCAL nGets := 0
- LOCAL i
-
- CLEAR SCREEN
- Screens -> (DbSeek(cScrName))
- DO WHILE cScrName == Trim(Upper(Screens -> ScrName))
- IF Empty(SayColor)
- @ SayRow, SayCol SAY Trim(SayString) PICTURE Trim(SayPict)
- ELSE
- @ SayRow, SayCol SAY Trim(SayString) PICTURE Trim(SayPict) ;
- COLOR Trim(SayColor)
- ENDIF
-
- IF !Empty(GetFld)
- nGets++
- Aadd(aGsbs, FieldBlock(GetFld))
- Aadd(aTemps, Eval(aGsbs[nGets]))
- @ GetRow, GetCol GET aTemps[nGets] PICTURE Trim(GetPict)
-
- IF !Empty(GetColor)
- Atail(GetList):colorDisp(GetColor)
- ENDIF
-
- IF !Empty(GetWhen)
- Atail(GetList):preBlock := &GetWhen
- ENDIF
-
- IF !Empty(GetValid)
- Atail(GetList):postBlock := &GetValid
- ENDIF
- ENDIF
-
- Screens -> (DbSkip(1))
- ENDDO
- READ
-
- IF LastKey() != K_ESC .AND. Updated()
- IF Rlock()
- FOR i := 1 TO nGets
- Eval(aGsbs[i], aTemps[i])
- NEXT
- UNLOCK
- ENDIF
- ENDIF
-
- RETURN NIL