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

  1. ********************
  2.  
  3. FUNCTION Relate
  4.  
  5.    PARAMETERS _the_areas, _the_field
  6.  
  7.    _the_areas = UPPER(_the_areas)
  8.  
  9.    wh_am_i = CHR(64 + SELECT())
  10.  
  11.    DO CASE
  12.    CASE "Z"$_the_areas
  13.       rel_value = &wh_am_i.->&_the_field.
  14.       DO WHILE !EMPTY(_the_areas)
  15.          move = PARSING(@_the_areas)
  16.          IF "-"$move                       && <- Added, not tested, to NOT
  17.             move = STRTRAN(move, "-", "")  && move the file pointer in the
  18.          ELSEIF move <> "Z"                && area with the "-" in it.
  19.             SELECT &move.            
  20.             _theindex = INDEXKEY(INDEXORD())
  21.             IF TYPE("_the_field") = TYPE(_theindex)
  22.                SEEK rel_value
  23.             ENDIF
  24.          ENDIF
  25.       ENDDO
  26.       SELECT &wh_am_i
  27.       RETURN(.T.)
  28.    OTHERWISE
  29.       IF wh_am_i$_the_areas
  30.          is_there = .T.
  31.          DO WHILE !EMPTY(_the_areas)
  32.             move = PARSING(@_the_areas)
  33.             IF "-"$move
  34.                move = STRTRAN(move, "-", "")
  35.                is_there = .T.
  36.             ELSE
  37.                SELECT &move.
  38.                _theindex = INDEXKEY(INDEXORD())
  39.                IF TYPE("_the_field") = TYPE(_theindex)
  40.                   SEEK _the_field
  41.                   IF !FOUND()
  42.                      is_there = .F.
  43.                   ENDIF
  44.                ELSE
  45.                   is_there = .F.
  46.                ENDIF
  47.             ENDIF
  48.          ENDDO
  49.          SELECT &wh_am_i
  50.          RETURN(is_there)
  51.       ELSE
  52.          DO WHILE !EMPTY(_the_areas)
  53.             move = PARSING(@_the_areas)
  54.             IF "-"$move
  55.                move = STRTRAN(move, "-", "")
  56.             ELSE
  57.                SELECT &move.
  58.                _theindex = INDEXKEY(INDEXORD())
  59.                IF TYPE("_the_field") = TYPE(_theindex)
  60.                   SEEK _the_field
  61.                ENDIF
  62.             ENDIF
  63.          ENDDO
  64.          SELECT &wh_am_i
  65.          RETURN(_the_field)
  66.       ENDIF
  67.    ENDCASE
  68.    RETURN("")
  69.  
  70. * End of File
  71.