44 lines
857 B
Plaintext
44 lines
857 B
Plaintext
FUNCTION CK_IF_NUMERIC(CKFLD)
|
|
LOCAL GOODVAR := '', I, CKCHAR
|
|
LOCAL REPVAR := ALLTRIM(CKFLD) // -- FIELD TO VALIDATE
|
|
LOCAL NUMDEC := 0
|
|
|
|
** CHECK FOR ALPHA FIELD (!NUMERIC)
|
|
FOR I = 1 TO LEN(REPVAR)
|
|
CKCHAR := SUBSTR(REPVAR,I,1)
|
|
IF !(CKCHAR$'0123456789-.')
|
|
I := 999
|
|
ELSE
|
|
IF (CKCHAR >= CHR(48) .AND. CKCHAR <= CHR(57))
|
|
GOODVAR := GOODVAR + CKCHAR
|
|
ELSE
|
|
IF CKCHAR = '-'
|
|
IF I = 1
|
|
GOODVAR := GOODVAR + CKCHAR
|
|
ELSE
|
|
I := 999
|
|
ENDIF
|
|
ELSE
|
|
IF CKCHAR = '.'
|
|
NUMDEC ++
|
|
IF NUMDEC = 1
|
|
GOODVAR := GOODVAR + CKCHAR
|
|
ELSE
|
|
I := 999
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
NEXT
|
|
|
|
***IF >= 999, THEN IT WAS AN ALPHA LITERAL STRING
|
|
***IF < 999, THEN IT WAS A NUMERIC VALUE
|
|
|
|
IF I < 999
|
|
RETURN .T.
|
|
ELSE
|
|
RETURN .F.
|
|
ENDIF
|
|
|
|
|