home *** CD-ROM | disk | FTP | other *** search
- ********************
-
- FUNCTION Selecting
-
- PARAMETERS _thefile, _theindexes, _newselect
-
- PRIVATE _withindex, _number, _holding, _retto
-
- IF PCOUNT() < 1
- RETURN(.F.)
- ELSEIF PCOUNT() = 1
- _theindexes = ""
- _newselect = .F.
- ELSEIF PCOUNT() = 2
- IF TYPE("_theindexes") = "L"
- _newselect = _theindexes
- _theindexes = ""
- ELSEIF TYPE("_theindexes") = "A"
- _holding = ""
- FOR _number = 1 TO LEN(_theindexes)
- _holding = _holding + "/" + _theindex[_number]
- NEXT
- _theindex = _holding
- _holding = ""
- _number = 0
- ELSEIF TYPE("_theindexes") = "C"
- * This is o.k.
- ELSE
- RETURN(.F.)
- ENDIF
- _newselect = .F.
- ELSEIF PCOUNT() = 3
- IF TYPE("_newselect") != "L"
- RETURN(.F.)
- ELSEIF TYPE("_theindexes") = "A"
- _holding = ""
- FOR _number = 1 TO LEN(_theindexes)
- _holding = _holding + "/" + _theindex[_number]
- NEXT
- _theindex = _holding
- _holding = ""
- _number = 0
- ELSEIF TYPE("_theindexes") = "C"
- * This is o.k.
- ELSE
- RETURN(.F.)
- ENDIF
- ENDIF
-
- IF EMPTY(_thefile)
- USE
- RETURN(.T.)
- ENDIF
-
- _thefile = Extention(_thefile, "DBF")
-
- _withindex = (!EMPTY(_theindexes))
-
- IF !Isa_dbf(_thefile)
- RETURN(.F.)
- ENDIF
-
- IF _withindex
- _holding = _theindexes && This is temp.
- _number = 0
- DO WHILE !EMPTY(_theindexes)
- Parsing(@_theindexes)
- _number = _number + 1
- ENDDO
- _theindexes = _holding
- IF _newselect
- _retto = SELECT()
- SELECT 0
- ENDIF
- DO CASE
- CASE _number = 1
- USE (_thefile) INDEX (Parsing(@_theindexes))
- CASE _number = 2
- USE (_thefile) INDEX (Parsing(@_theindexes)), (Parsing(@_theindexes))
- CASE _number = 3
- USE (_thefile) INDEX (Parsing(@_theindexes)), (Parsing(@_theindexes)),;
- (Parsing(@_theindexes))
- CASE _number = 4
- USE (_thefile) INDEX (Parsing(@_theindexes)), (Parsing(@_theindexes)),;
- (Parsing(@_theindexes)), (Parsing(@_theindexes))
- CASE _number = 5
- USE (_thefile) INDEX (Parsing(@_theindexes)), (Parsing(@_theindexes)),;
- (Parsing(@_theindexes)), (Parsing(@_theindexes)),;
- (Parsing(@_theindexes))
- CASE _number = 6
- USE (_thefile) INDEX (Parsing(@_theindexes)), (Parsing(@_theindexes)),;
- (Parsing(@_theindexes)), (Parsing(@_theindexes)),;
- (Parsing(@_theindexes)), (Parsing(@_theindexes))
- CASE _number = 7
- USE (_thefile) INDEX (Parsing(@_theindexes)), (Parsing(@_theindexes)),;
- (Parsing(@_theindexes)), (Parsing(@_theindexes)),;
- (Parsing(@_theindexes)), (Parsing(@_theindexes)),;
- (Parsing(@_theindexes))
- CASE _number = 8
- USE (_thefile) INDEX (Parsing(@_theindexes)), (Parsing(@_theindexes)),;
- (Parsing(@_theindexes)), (Parsing(@_theindexes)),;
- (Parsing(@_theindexes)), (Parsing(@_theindexes)),;
- (Parsing(@_theindexes)), (Parsing(@_theindexes))
- CASE _number = 9
- USE (_thefile) INDEX (Parsing(@_theindexes)), (Parsing(@_theindexes)),;
- (Parsing(@_theindexes)), (Parsing(@_theindexes)),;
- (Parsing(@_theindexes)), (Parsing(@_theindexes)),;
- (Parsing(@_theindexes)), (Parsing(@_theindexes)),;
- (Parsing(@_theindexes))
- OTHERWISE
- USE (_thefile)
- SET INDEX TO (Parsing(@_theindexes)), (Parsing(@_theindexes)),;
- (Parsing(@_theindexes)), (Parsing(@_theindexes)),;
- (Parsing(@_theindexes)), (Parsing(@_theindexes)),;
- (Parsing(@_theindexes)), (Parsing(@_theindexes)),;
- (Parsing(@_theindexes)), (Parsing(@_theindexes))
- ENDCASE
- ELSE
- USE (_thefile)
- ENDIF
-
- IF _newselect
- SELECT (_retto)
- ENDIF
-
- RETURN( DOSERROR() = 0 )
-
- * End of File
-