home *** CD-ROM | disk | FTP | other *** search
- ********************
-
- FUNCTION Updtable
-
- PARAMETERS _uprow, _upcol, _updown, _upover, _upfile, _upsfield, _upgfield, _upfilter, _upbanner, _upcolor, _upvalids, _uppicts
-
- PRIVATE _w1, _x1, _y1, _z1, _tfields[Occurence("/", _upsfield)+1], _theader[Occurence("/", _upsfield)+1], _tcolor, _tfilt
-
- IF PCOUNT() = 6
- _upgfield = _upsfield
- _upfilter = ""
- _upbanner = " ToolkiT Table Maintenance "
- _upcolor = SETCOLOR()
- _upvalids = ""
- _uppicts = ""
- ELSEIF PCOUNT() = 7
- _upgfield = IF( EMPTY(_upgfield), _upsfield, _upgfield )
- _upfilter = ""
- _upbanner = " ToolkiT Table Maintenance "
- _upcolor = SETCOLOR()
- _upvalids = ""
- _uppicts = ""
- ELSEIF PCOUNT() = 8
- _upgfield = IF( EMPTY(_upgfield), _upsfield, _upgfield )
- _upfilter = IF( EMPTY(_upfilter), "", _upfilter)
- _upbanner = " ToolkiT Table Maintenance "
- _upcolor = SETCOLOR()
- _upvalids = ""
- _uppicts = ""
- ELSEIF PCOUNT() = 9
- _upgfield = IF( EMPTY(_upgfield), _upsfield, _upgfield )
- _upfilter = IF( EMPTY(_upfilter), "", _upfilter)
- _upbanner = IF( EMPT(_upbanner), " ToolkiT Table Maintenance ", _upbanner)
- _upcolor = SETCOLOR()
- _upvalids = ""
- _uppicts = ""
- ELSEIF PCOUNT() = 10
- _upgfield = IF( EMPTY(_upgfield), _upsfield, _upgfield )
- _upfilter = IF( EMPTY(_upfilter), "", _upfilter)
- _upbanner = IF( EMPT(_upbanner), " ToolkiT Table Maintenance ", _upbanner)
- _upvalids = ""
- _uppicts = ""
- ELSEIF PCOUNT() = 11
- _upgfield = IF( EMPTY(_upgfield), _upsfield, _upgfield )
- _upfilter = IF( EMPTY(_upfilter), "", _upfilter)
- _upbanner = IF( EMPT(_upbanner), " ToolkiT Table Maintenance ", _upbanner)
- _uppicts = ""
- ENDIF
-
- _waitcolor = SETCOLOR()
- _ifappend = .F.
-
- IF ISCOLOR() .AND. !(IF(TYPE("scrmono")="U", .T., scrmono))
- SETCOLOR(_upcolor)
- ENDIF
-
- _retto = SELECT()
-
- IF EMPTY(_upfile)
- _upfile = SELECT()
- ELSE
- IF LEN(_upfile) = 1
- SELECT &_upfile.
- ELSE
- SELECT 0
- USE (_upfile)
- ENDIF
- ENDIF
-
- SET KEY 28 TO
- SET KEY 7 TO
- SET KEY -9 TO
- SET KEY 32 TO
-
- _tfilt = DBFILTER()
- IF !EMPTY(_upfilter)
- SET FILTER TO &_upfilter.
- _lside = LTRIM(TRIM(SUBSTR(_upfilter, 1, AT("=", _upfilter)-1)))
- _rside = LTRIM(TRIM(SUBSTR(_upfilter, 1 +AT("=", _upfilter))))
- _rside = STRTRAN(STRTRAN(STRTRAN(STRTRAN(_rside, "'", ""), '"', ""), "[", ""), "]", "")
- _oktoadd = !EMPTY(FINDFIELD(UPPER(_lside)))
- ENDIF
-
- GO TOP
-
- _w1 = _uprow+1
- _x1 = _upcol+1
- _y1 = _w1 + (_updown - 2)
- _z1 = _x1 + (_upover - 2)
- _ttt = _upsfield
-
- FOR _qaz = 1 TO LEN(_tfields)
- _tfields[_qaz] = FIELDNAME(VAL(PARSING(@_ttt)))
- _theader[_qaz] = ";" + FORMALIZE(STRTRAN(_tfields[_qaz], "_", " "))
- NEXT
-
- _ttt = _upsfield
-
- Windowpush(_uprow, _upcol, _uprow + _updown, _upcol+_upover)
- @ _uprow, _upcol + 2 SAY _upbanner
- DBEDIT(_w1,_x1, _y1,_z1, _tfields, "TABLEKEYS", .F., _theader)
- IF LEN(_upfile) != 1
- USE
- ENDIF
- Windowpop()
- SELECT (_retto)
- SET FILTER TO &_tfilt.
- SETCOLOR(_waitcolor)
- RETURN(DOSERROR() = 0)
-
- *********************
-
- FUNCTION Tablekeys
-
- PARAMETERS mode, p1
-
- IF LASTKEY() = 27
- RETURN(0)
- ENDIF
-
- IF TYPE("_oktoadd") = "U"
- _oktoadd = .F.
- ENDIF
-
- whatkey = LASTKEY()
-
- IF mode = 4
- IF whatkey = 28 && Key help
- Windowpush(_w1, _x1+1, _y1-1, _z1-3)
- @ Wrow(1), Wcol(3) SAY "F1 Key is this screen"
- @ Wrow(2), Wcol(3) SAY "F10 adds record"
- @ Wrow(3), Wcol(3) SAY "SPACE BAR Edits Record"
- @ Wrow(5), Wcol(3) SAY "Any key to return..."
- INKEY(0)
- Windowpop()
-
- ELSEIF whatkey = 7
- Windowpush(_y1,_x1+1,_y1+2,_x1+35)
- @ Wrow(1), Wcol(1) SAY "Are you sure to DELETE this? "
- IF Prompt()
- Clear_area(_y1,_x1+1,_y1+2,_x1+35)
- @ Wrow(1), Wcol(1) SAY "One Moment. Working.... "
- DELETE
- PACK
- Clear_area()
- @ Wrow(1), Wcol(1) SAY "Any key to quit."
- INKEY(0)
- Windowpop()
- RETURN(2)
- ENDIF
- Windowpop()
-
- ELSEIF whatkey = -9 .OR. whatkey = 32 && Add/Edit record
- *
- * The key if filtered will have to be added automatically, I think
- *
- _ttx = _upgfield
- _ifappend = (whatkey = -9)
- IF _oktoadd
- REPLACE &_lside. WITH _rside
- ENDIF
- DO WHILE !EMPTY(_ttx)
- TABLEGET(Parsing(@_ttx), RECNO())
- IF LASTKEY() = 27
- EXIT
- ENDIF
- ENDDO
- RETURN(2)
-
- ENDIF
- ENDIF
-
- RETURN(1)
-
- ********************
-
- PROCEDURE Tableget
-
- PARAMETERS whatget, therecord
-
- *
- * we will have to add the length of the get fitting into the
- * display area.
- *
- IF TYPE("_oktoadd") = "U"
- _oktoadd = .F.
- ENDIF
-
- _getit = FIELDNAME(VAL(whatget))
- _sayit = Formalize(STRTRAN(_getit, "_", " "))
- IF EMPTY(_getit)
- RETURN
- ENDIF
- IF TYPE("_upvalids") = "A"
- _newx = _upgfield
- _cnt = 1
- _validexp = ".T."
- DO WHILE !EMPTY(_newx)
- _newvar = VAL(Parsing(@_newx))
- IF _newvar = VAL(whatget)
- _validexp = _upvalids[_cnt]
- EXIT
- ELSE
- _cnt = _cnt + 1
- ENDIF
- ENDDO
- ELSE
- _validexp = ".T."
- ENDIF
-
- IF TYPE(_validexp) == "U" .OR. TYPE(_validexp) = "UE"
- IF "("$_validexp
- IF TYPE( Parsing(_validexp, "(" ) + "()" ) = "UI"
- ELSE
- _validexp = ".T."
- ENDIF
- ELSE
- _validexp = ".T."
- ENDIF
- ELSE
- _validexp = ".T."
- ENDIF
-
- IF TYPE(_getit) = "M"
- Windowpush(_y1,_x1+1,_y1+3,_x1+47)
- ELSE
- Windowpush(_y1,_x1+1,_y1+2,_x1+35)
- ENDIF
- IF LASTREC() = 0 && .OR. LASTKEY() = 24
- _ifappend = .T.
- ELSE
- GO therecord
- IF RECNO() > LASTREC()
- GO LASTREC()
- ENDIF
- ENDIF
- IF _ifappend
- APPEND BLANK
- _ifappend = .F.
- ENDIF
- IF _oktoadd
- REPLACE &_lside. WITH _rside
- ENDIF
- SET CURSOR ON
- _holding = &_getit
- IF TYPE("_uppicts") = "A"
- _newx = _upgfield
- _cnt = 1
- _thepict = ""
- DO WHILE !EMPTY(_newx)
- _newvar = VAL(Parsing(@_newx))
- IF _newvar = VAL(whatget)
- _thepict = _uppicts[_cnt]
- EXIT
- ELSE
- _cnt = _cnt + 1
- ENDIF
- ENDDO
- IF TYPE(_getit) = "M"
- SET FUNCTION 10 TO CHR(23)
- @ Wrow(1),Wcol(3) SAY _sayit + " =>"
- _holding = MEMOTRAN(MEMOEDIT(_holding, ROW(),COL(),ROW()+1,IF( (COL()+30 > Wcol(Wwidth())+1), Wcol(Wwidth())+1, COL()+30),.T.,"",COL()+70))
- SET FUNCTION 10 TO ""
- ELSE
- @ Wrow(1),Wcol(3) SAY _sayit + " =>" GET _holding PICTURE _thepict VALID &_validexp.
- ENDIF
- ELSE
- IF TYPE(_getit) = "M"
- SET FUNCTION 10 TO CHR(23)
- @ Wrow(1),Wcol(3) SAY _sayit + " =>"
- _holding = MEMOTRAN(MEMOEDIT(_holding, ROW(),COL(),ROW()+1,IF( (COL()+30 > Wcol(Wwidth())+1), Wcol(Wwidth())+1, COL()+30),.T.,"",COL()+70))
- SET FUNCTION 10 TO ""
- ELSE
- @ Wrow(1),Wcol(3) SAY _sayit + " =>" GET _holding VALID &_validexp.
- ENDIF
- ENDIF
- READ
- IF LASTKEY() != 27
- REPLACE &_getit. WITH _holding
- ENDIF
- SET CURSOR OFF
- Windowpop()
-
- * End of File
-