Validation Problem

jai shankar

New Member
hi to all,
I want to put a validation for database field so that it can only contain characters (a-z & A-Z & space).I don't know what's the process.
Any one can suggest me the solution.
Thanks in advance.
 

John Nebi

Member
There are many ways. You first have to decide how you want to block the characters you don't want - as they are entered, when the user tabs out of the field, when the user clicks the "save" button, or at the back end in the data dictionary level, such as an assign trigger or a validate statement ...
 

jai shankar

New Member
Thakns Nabi

hi,
But I have implemented it useing API-Smart Data field options and i want to do validation using coding.Can U tell me any example code for that.
Example ques: Put the validation for name database field so that it only accept characters(a-z,A-z,'')?
Thnaks and Regards.
 

John Nebi

Member
Code:
DEF VAR cChar AS CHAR.
DEF FRAME f cChar. 
ON ANY-PRINTABLE OF cChar IN FRAME f  
DO:
   IF NOT 
	  DYNAMIC-FUNCTION('isAlphaNumeric':U,KEYFUNCTION(LASTKEY)) 
  THEN	 
	RETURN NO-APPLY.
END.

ENABLE cChar WITH FRAME f.

WAIT-FOR WINDOW-CLOSE OF CURRENT-WINDOW.


FUNCTION isAlphaNumeric RETURNS LOGICAL (INPUT ipcField AS CHARACTER):

	DEFINE VARIABLE cAcceptables AS CHARACTER 
	INIT " ABCDEFGHIJKLMNOPQRSTUVWXYZ" NO-UNDO.
	DEFINE VARIABLE i			AS INTEGER		 NO-UNDO.  
	DEFINE VARIABLE lBadChar	 AS LOGICAL		 NO-UNDO.

	DO i = 1 TO LENGTH(ipcField):   
	
	   IF INDEX(cAcceptables,SUBSTRING(ipcField,i,1)) EQ 0 THEN 
		  DO:
			 ASSIGN lBadChar = TRUE.
			 LEAVE.
		  END.
	  
	END.

	RETURN IF lBadChar EQ TRUE THEN 
			  FALSE 
		   ELSE 
			  TRUE.   
END FUNCTION.
 

kandavel879

New Member
Code:
ON 'any-printable':U OF fill-in
DO:
   IF (KEYCODE(KEYLABEL(LASTKEY)) >= 97) AND (KEYCODE(KEYLABEL(LASTKEY)) <= 122)  THEN.
ELSE IF (KEYCODE(KEYLABEL(LASTKEY)) >= 65) AND (KEYCODE(KEYLABEL(LASTKEY)) <= 90) THEN.
ELSE
       RETURN NO-APPLY.
END.
 
Top