home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 5 / 05.iso / a / a075 / 1.img / TOOLKIT1.EXE / SST244.PRG < prev    next >
Encoding:
Text File  |  1989-08-08  |  4.4 KB  |  130 lines

  1. ********************
  2.  
  3. FUNCTION Selecting
  4.  
  5.    PARAMETERS _thefile, _theindexes, _newselect
  6.  
  7.    PRIVATE _withindex, _number, _holding, _retto
  8.  
  9.    IF PCOUNT() < 1
  10.       RETURN(.F.)
  11.    ELSEIF PCOUNT() = 1
  12.       _theindexes = ""
  13.       _newselect = .F.
  14.    ELSEIF PCOUNT() = 2
  15.       IF TYPE("_theindexes") = "L"
  16.          _newselect = _theindexes
  17.          _theindexes = ""
  18.       ELSEIF TYPE("_theindexes") = "A"
  19.          _holding = ""
  20.          FOR _number = 1 TO LEN(_theindexes)
  21.             _holding = _holding + "/" + _theindex[_number]
  22.          NEXT
  23.          _theindex = _holding
  24.          _holding = ""
  25.          _number = 0
  26.       ELSEIF TYPE("_theindexes") = "C"
  27.          * This is o.k.
  28.       ELSE
  29.          RETURN(.F.)
  30.       ENDIF
  31.       _newselect = .F.
  32.    ELSEIF PCOUNT() = 3
  33.       IF TYPE("_newselect") != "L"
  34.          RETURN(.F.)
  35.       ELSEIF TYPE("_theindexes") = "A"
  36.          _holding = ""
  37.          FOR _number = 1 TO LEN(_theindexes)
  38.             _holding = _holding + "/" + _theindex[_number]
  39.          NEXT
  40.          _theindex = _holding
  41.          _holding = ""
  42.          _number = 0
  43.       ELSEIF TYPE("_theindexes") = "C"
  44.          * This is o.k.
  45.       ELSE
  46.          RETURN(.F.)
  47.       ENDIF
  48.    ENDIF
  49.  
  50.    IF EMPTY(_thefile)
  51.       USE
  52.       RETURN(.T.)
  53.    ENDIF
  54.  
  55.    _thefile = Extention(_thefile, "DBF")
  56.  
  57.    _withindex = (!EMPTY(_theindexes))
  58.  
  59.    IF !Isa_dbf(_thefile)
  60.       RETURN(.F.)
  61.    ENDIF
  62.  
  63.    IF _withindex
  64.       _holding = _theindexes                 && This is temp.
  65.       _number = 0
  66.       DO WHILE !EMPTY(_theindexes)
  67.          Parsing(@_theindexes)
  68.          _number = _number + 1
  69.       ENDDO
  70.       _theindexes = _holding
  71.       IF _newselect
  72.          _retto = SELECT()
  73.          SELECT 0
  74.       ENDIF
  75.       DO CASE
  76.       CASE _number = 1
  77.          USE (_thefile) INDEX (Parsing(@_theindexes))
  78.       CASE _number = 2
  79.          USE (_thefile) INDEX (Parsing(@_theindexes)), (Parsing(@_theindexes))
  80.       CASE _number = 3
  81.          USE (_thefile) INDEX (Parsing(@_theindexes)), (Parsing(@_theindexes)),;
  82.                               (Parsing(@_theindexes))
  83.       CASE _number = 4
  84.          USE (_thefile) INDEX (Parsing(@_theindexes)), (Parsing(@_theindexes)),;
  85.                               (Parsing(@_theindexes)), (Parsing(@_theindexes))
  86.       CASE _number = 5
  87.          USE (_thefile) INDEX (Parsing(@_theindexes)), (Parsing(@_theindexes)),;
  88.                               (Parsing(@_theindexes)), (Parsing(@_theindexes)),;
  89.                               (Parsing(@_theindexes))
  90.       CASE _number = 6
  91.          USE (_thefile) INDEX (Parsing(@_theindexes)), (Parsing(@_theindexes)),;
  92.                               (Parsing(@_theindexes)), (Parsing(@_theindexes)),;
  93.                               (Parsing(@_theindexes)), (Parsing(@_theindexes))
  94.       CASE _number = 7
  95.          USE (_thefile) INDEX (Parsing(@_theindexes)), (Parsing(@_theindexes)),;
  96.                               (Parsing(@_theindexes)), (Parsing(@_theindexes)),;
  97.                               (Parsing(@_theindexes)), (Parsing(@_theindexes)),;
  98.                               (Parsing(@_theindexes))
  99.       CASE _number = 8
  100.          USE (_thefile) INDEX (Parsing(@_theindexes)), (Parsing(@_theindexes)),;
  101.                               (Parsing(@_theindexes)), (Parsing(@_theindexes)),;
  102.                               (Parsing(@_theindexes)), (Parsing(@_theindexes)),;
  103.                               (Parsing(@_theindexes)), (Parsing(@_theindexes))
  104.       CASE _number = 9
  105.          USE (_thefile) INDEX (Parsing(@_theindexes)), (Parsing(@_theindexes)),;
  106.                               (Parsing(@_theindexes)), (Parsing(@_theindexes)),;
  107.                               (Parsing(@_theindexes)), (Parsing(@_theindexes)),;
  108.                               (Parsing(@_theindexes)), (Parsing(@_theindexes)),;
  109.                               (Parsing(@_theindexes))
  110.       OTHERWISE
  111.          USE (_thefile)
  112.          SET INDEX TO (Parsing(@_theindexes)), (Parsing(@_theindexes)),;
  113.                       (Parsing(@_theindexes)), (Parsing(@_theindexes)),;
  114.                       (Parsing(@_theindexes)), (Parsing(@_theindexes)),;
  115.                       (Parsing(@_theindexes)), (Parsing(@_theindexes)),;
  116.                       (Parsing(@_theindexes)), (Parsing(@_theindexes))
  117.       ENDCASE
  118.    ELSE
  119.       USE (_thefile)
  120.    ENDIF
  121.  
  122.    IF _newselect
  123.       SELECT (_retto)
  124.    ENDIF
  125.  
  126.    RETURN( DOSERROR() = 0 )
  127.  
  128. * End of File
  129.  
  130.