home *** CD-ROM | disk | FTP | other *** search
- ********************
-
- FUNCTION Relate
-
- PARAMETERS _the_areas, _the_field
-
- _the_areas = UPPER(_the_areas)
-
- wh_am_i = CHR(64 + SELECT())
-
- DO CASE
- CASE "Z"$_the_areas
- rel_value = &wh_am_i.->&_the_field.
- DO WHILE !EMPTY(_the_areas)
- move = PARSING(@_the_areas)
- IF "-"$move && <- Added, not tested, to NOT
- move = STRTRAN(move, "-", "") && move the file pointer in the
- ELSEIF move <> "Z" && area with the "-" in it.
- SELECT &move.
- _theindex = INDEXKEY(INDEXORD())
- IF TYPE("_the_field") = TYPE(_theindex)
- SEEK rel_value
- ENDIF
- ENDIF
- ENDDO
- SELECT &wh_am_i
- RETURN(.T.)
- OTHERWISE
- IF wh_am_i$_the_areas
- is_there = .T.
- DO WHILE !EMPTY(_the_areas)
- move = PARSING(@_the_areas)
- IF "-"$move
- move = STRTRAN(move, "-", "")
- is_there = .T.
- ELSE
- SELECT &move.
- _theindex = INDEXKEY(INDEXORD())
- IF TYPE("_the_field") = TYPE(_theindex)
- SEEK _the_field
- IF !FOUND()
- is_there = .F.
- ENDIF
- ELSE
- is_there = .F.
- ENDIF
- ENDIF
- ENDDO
- SELECT &wh_am_i
- RETURN(is_there)
- ELSE
- DO WHILE !EMPTY(_the_areas)
- move = PARSING(@_the_areas)
- IF "-"$move
- move = STRTRAN(move, "-", "")
- ELSE
- SELECT &move.
- _theindex = INDEXKEY(INDEXORD())
- IF TYPE("_the_field") = TYPE(_theindex)
- SEEK _the_field
- ENDIF
- ENDIF
- ENDDO
- SELECT &wh_am_i
- RETURN(_the_field)
- ENDIF
- ENDCASE
- RETURN("")
-
- * End of File