home *** CD-ROM | disk | FTP | other *** search
- *****************************************************************
- FUNCTION CHKKEY
- *****************************************************************
-
- * Verify key data in specified file and optionally displays it
-
- * Copyright(c) 1991 -- James Occhiogrosso
-
- LOCAL old_color := SETCOLOR(colhelp1), ret_value := .F.
- PRIVATE old_file := ALIAS()
-
- PARAMETERS lookfile, lookdata, udf_name, showrow, startcol, ;
- donecol, showfld1, showfld2, spac_char
-
- * Check for valid parameters
-
- IF PCOUNT()=2 .OR. PCOUNT()=3 .OR. PCOUNT()=7 .OR. PCOUNT()=9
-
- IF PCOUNT() > 3
-
- * Display external data. Check passed row and column
- * for validity. Error message needs 12 characters
- IF startcol > MAXCOL() - 12 .OR. showrow > MAXROW()
- RETURN(.F.)
- ELSE
- @ showrow, startcol CLEAR TO showrow, donecol
- ENDIF
- ENDIF
-
- ELSE
- RETURN(.F.)
- ENDIF
-
- * Verify data exists in selected file
- SELECT (lookfile)
- SEEK (&lookdata)
-
- IF FOUND()
- ret_value := .T.
- DO CASE
-
- CASE PCOUNT() = 2
- * No screen display. Return.
- SETCOLOR(old_color)
- SELECT (old_file)
- RETURN ret_value
-
- CASE PCOUNT() = 7
- * Trim first field for display
- showdata = LTRIM(TRIM(&showfld1))
-
- CASE PCOUNT() = 9
- * Trim and space both fields for display
- showdata = LTRIM(TRIM(&showfld1)) + spac_char + ;
- LTRIM(TRIM(&showfld2))
- ENDCASE
-
- * Trim data to match the passed number of columns
- IF PCOUNT() = 7 .OR. PCOUNT() = 9
- showlen = LEN(showdata)
- IF showlen + startcol > donecol
- showdata = SUBSTR(showdata,1, donecol - startcol)
- ENDIF
- @ showrow, startcol SAY showdata
- ENDIF
- ELSE
- * Data was not found. Display "Not found!"
- SETCOLOR(colblink)
- ?? CHR(7)
- IF PCOUNT() > 3
- @ showrow, startcol SAY ' Not found! '
- ENDIF
- ENDIF
-
- * Call user defined procedure if one was passed.
-
- IF TYPE('udf_name') != 'U' .AND. .NOT. EMPTY(udf_name)
- ret_value = &udf_name()
- ENDIF
-
- SETCOLOR(old_color)
- SELECT (old_file)
-
- * Called function can alter return value if desired.
- RETURN ret_value
-
-