home *** CD-ROM | disk | FTP | other *** search
- // UDFIO.PRG
- // Employee Information input / output library functions
- // November, 1993
-
- #include "sys.ch"
-
- FUNCTION Init_IO(TheSys)
- MEMVAR SysPath
- PUBLIC SysPath
-
- SysPath := Get_Path(TheSys)
-
- RETURN TRUE
-
- FUNCTION FileInfo(TheAlias)
- LOCAL TheArray
-
- TheArray := {}
-
- IF ISUNDEFINED(TheAlias)
- AAdd(TheArray, "Employee")
- AAdd(TheArray, "Expense")
- AAdd(TheArray, "ExpCode")
- AAdd(TheArray, "Depart")
- AAdd(TheArray, "Supers")
- ELSE
-
- TheAlias := Lower(TheAlias)
-
- IF TheAlias == 'employee'
- AAdd(TheArray, "Emp_Num")
- AAdd(TheArray, "Upper(LName)")
-
- ELSEIF TheAlias == "expense"
- AAdd(TheArray, "Emp_Num" )
- AAdd(TheArray, "Exp_Code" )
- AAdd(TheArray, "Subm_Date")
- AAdd(TheArray, "Paid_Date")
- AAdd(TheArray, "Dept_Num" )
- AAdd(TheArray, "Super_Num")
-
- ELSEIF TheAlias == 'expcode'
- AAdd(TheArray, "Exp_Code")
- AAdd(TheArray, "Exp_Name")
-
- ELSEIF TheAlias == "depart"
- AAdd(TheArray, "Dept_Num" )
- AAdd(TheArray, "Dept_Name")
-
- ELSEIF TheAlias == "supers"
- AAdd(TheArray, "Super_Num")
- AAdd(TheArray, "SName" )
-
- ENDIF
- ENDIF
-
- RETURN TheArray
-
- FUNCTION Select_It(TheAlias)
-
- IF ISNUMERIC(TheAlias)
- SELECT (TheAlias)
-
- ELSEIF !Select(TheAlias) = 0
- SELECT (TheAlias)
-
- ELSEIF !Open_It(TheAlias)
- RETURN FALSE
-
- ENDIF
-
- RETURN TRUE
-
-
- FUNCTION Open_It(TheAlias)
- LOCAL TheCount, TheTotal, TheArray, TheNtx
- MEMVAR SysPath
-
- TheArray := FileInfo(TheAlias)
- TheTotal := Len(TheArray)
- IF TheTotal = 0
- RETURN FALSE
- ENDIF
-
- TheNtx := SysPath + Left(TheAlias, 6)
- USE (SysPath + TheAlias) ALIAS (TheAlias) NEW
-
- FOR TheCount := 1 TO TheTotal
- DBSetIndex(TheNtx + RZero(str(TheCount, 2)))
- NEXT
-
- RETURN TRUE
-
-
- FUNCTION Close_It(TheAlias)
-
- IF ISUNDEFINED(TheAlias)
- CLOSE DATABASES
-
- ELSEIF Select(TheAlias) = 0
- RETURN FALSE
-
- ELSE
- Select_It(TheAlias)
- USE
-
- ENDIF
-
- RETURN TRUE
-
- FUNCTION Order_It(TheOrder, TheAlias)
-
- IF !ISCHARACTER(TheAlias)
- ELSEIF !Select_It(TheAlias)
- RETURN FALSE
- ENDIF
-
- SET ORDER TO (TheOrder)
-
- RETURN TRUE
-
-
- FUNCTION Seek_It(TheData, TheAlias, TheOrder, P4)
- LOCAL TheSoft
-
- IF !ISCHARACTER(TheAlias)
- ELSEIF !Select_It(TheAlias)
- RETURN FALSE
- ENDIF
-
- IF !ISNUMERIC(TheOrder)
- ELSEIF !Order_It(TheOrder)
- RETURN FALSE
- ENDIF
-
- IF !ISLOGICAL(P4)
- TheSoft := FALSE
- ELSE
- TheSoft := P4
- ENDIF
-
- DBSeek(TheData, TheSoft)
-
- RETURN Found()
-
-
- FUNCTION Append_It(TheAlias)
-
- IF !ISCHARACTER(TheAlias)
- ELSEIF !Select_It(TheAlias)
- RETURN FALSE
- ENDIF
-
- APPEND BLANK
-
- RETURN TRUE
-
-
- FUNCTION Delete_It(TheAlias, TheMode)
-
- IF !ISCHARACTER(TheAlias)
- ELSEIF !Select_It(TheAlias)
- RETURN FALSE
- ENDIF
-
- DELETE
-
- IF !ISLOGICAL(TheMode)
- ELSEIF !TheMode
- ELSEIF !Skip_It(+1)
- ELSEIF !Skip_It(-1)
- RETURN FALSE
- ENDIF
-
- RETURN TRUE
-
-
- FUNCTION GoTo_It(TheRecord, TheAlias)
-
- IF ISUNDEFINED(TheAlias)
- ELSEIF !Select_It(TheAlias)
- RETURN FALSE
- ENDIF
-
- GOTO TheRecord
-
- IF BOF()
- RETURN FALSE
-
- ELSEIF EOF()
- RETURN FALSE
-
- ENDIF
-
- RETURN !Deleted()
-
-
- FUNCTION Skip_It(TheAmount, TheAlias, TheOrder, TheCondition)
-
- IF !ISCHARACTER(TheAlias)
- ELSEIF !Select_It(TheAlias)
- RETURN FALSE
- ENDIF
-
- IF !ISNUMERIC(TheOrder)
- ELSEIF !Order_It(TheOrder)
- RETURN FALSE
- ENDIF
-
- IF !ISNUMERIC(TheAmount)
- TheAmount := 1
- ENDIF
-
- *---- this will go to EOF() when already at EOF() or called from the
- * last non-deleted record when SET DELETED is ON (which it is by
- * default).
-
- IF !ISBLOCK(TheCondition)
- TheCondition := { || TRUE }
- ENDIF
-
- DO WHILE TRUE
- SKIP TheAmount
-
- IF BOF()
- RETURN FALSE
-
- ELSEIF EOF()
- RETURN FALSE
-
- ELSEIF Eval(TheCondition)
- EXIT
-
- ENDIF
-
- ENDDO
-
- RETURN TRUE
-
-
- FUNCTION Top_It(TheAlias, TheOrder, TheCondition)
-
- IF !ISCHARACTER(TheAlias)
- ELSEIF !Select_It(TheAlias)
- RETURN FALSE
- ENDIF
-
- IF !ISNUMERIC(TheOrder)
- ELSEIF !Order_It(TheOrder)
- RETURN FALSE
- ENDIF
-
- GO TOP
-
- IF !ISBLOCK(TheCondition)
- ELSEIF Eval(TheCondition)
- ELSE
- Skip_It(1,,,TheCondition)
- ENDIF
-
- RETURN !EOF()
-
-
- FUNCTION Bottom_It(TheAlias, TheOrder, TheCondition)
-
- IF !ISCHARACTER(TheAlias)
- ELSEIF !Select_It(TheAlias)
- RETURN FALSE
- ENDIF
-
- IF !ISNUMERIC(TheOrder)
- ELSEIF !Order_It(TheOrder)
- RETURN FALSE
- ENDIF
-
- *---- this will go to EOF() when already at EOF() or called from the
- * last non-deleted record when SET DELETED is ON (which it is by
- * default).
- GO BOTTOM
-
- IF !ISBLOCK(TheCondition)
- ELSEIF Eval(TheCondition)
- ELSE
- Skip_It(-1,,,TheCondition)
- ENDIF
-
- RETURN !EOF()
-
-
-
-