` New record validation extension template (Ronald van Raaphorst ) - Icetips Article
Icetips - Templates, Tools & Utilities for Clarion Developers

Templates, Tools and Utilities
for Clarion Developers

Icetips Article

Back to article list   Search Articles     Add Comment     Printer friendly     Direct link  

Par2: New record validation extension template
2001-02-10 -- Ronald van Raaphorst
 
1) Entry fields which can not be ze or blank should also be checked. 2) Not the foreground but the background should be coloured when invalid 3) An error icon should be set Note that in the dictionary the field must be set to:"Can not be zero or blank" When populating this field, the field property "required" is set. Turn it of in the screen, otherwise it won't get coloured, just selected when the OK button is pressed. Also set the IMM property to on, so that when a user types the first character, the colour will be reset. I just thought it was a little more sophisticated. Have fun. #EXTENSION(RecordValidation,'Check for empty fields (Compad)'),PROCEDURE #BOXED('Record Validation') #DISPLAY('Control Value Validation Conditions..') #PROMPT('Validate when the control is Accepted',CHECK),%ValidateOnAccept,AT(10,,150),DEFAULT(1) #PROMPT('Validate during Non-Stop Select',CHECK),%ValidateOnNonStopSelect,DEFAULT(1),AT(10,,150) #PROMPT('Color Fields rather than Selection',CHECK),%ValidateUsingColoration,DEFAULT(0),AT(10,,150) #ENABLE(%ValidateUsingColoration) #PROMPT('Field Color when Invalid',COLOR),%InvalidFieldColor,DEFAULT(00000FFH) #PROMPT('Prompt Color when Invalid',COLOR),%InvalidPromptColor,DEFAULT(00000FFH) #PROMPT('Show Message when fields are Invalid',CHECK),%UseValidateMessage,DEFAULT(0),AT(10,,150) #ENABLE(%UseValidateMessage) #PROMPT('Message to Display',@s80),%ValidationMessage,DEFAULT('De gekleurde velden moeten worden ingevoerd.') #PROMPT('Control to place Message in',FIELD),%MessageControl,REQ #ENDENABLE #PROMPT('Show icon when fields are invalid',CHECK),%UseValidateIcon,DEFAULT(''),AT(10,,150) #ENABLE(%UseValidateIcon) #PROMPT('Icon to Display when fields are invalid',OPENDIALOG('Choose icon','Icons|*.ICO')),%ValidationIcon,DEFAULT('') #PROMPT('Control to place Icon in',CONTROL),%IconControl,REQ #PROMPT('Use a Default Icon',CHECK),%UseDefaultIcon,DEFAULT(''),AT(10,,150) #ENABLE(%UseDefaultIcon) #PROMPT('Default Icon',OPENDIALOG('Choose icon','Icons|*.ICO')),%DefaultIcon,DEFAULT('') #ENDENABLE #PROMPT('Use a path where the icons can be found',CHECK),%UseIconPath,DEFAULT(''),AT(10,,150) #ENABLE(%UseIconPath) #PROMPT('Field with the path name (Ending with ''\'')',FIELD),%IconPathVar,DEFAULT('') #DISPLAY('Hallo Sirp') #ENDENABLE #ENDENABLE #ENDENABLE #BUTTON('Do Not Validate...'),MULTI(%ControlsExcluded,%ControlToExclude),AT(10,,180),HLP('~T PLExtensionRecordValidation') #PROMPT('Control to Exclude',CONTROL),%ControlToExclude #ENDBUTTON #ENDBOXED #AT(%GatherSymbols) #FOR(%Control),WHERE(%ControlUse) #! FOR each screen field #FIND(%Field,%ControlUse) #! FIX to process field #IF(%Field) #IF(%FieldLookup) #! IF Must Be In File #ADD(%ProcFilesUsed,%FieldLookup) #! FIX for file processing #ENDIF #! END (IF Must Be In File) #ENDIF #ENDFOR #! END (FOR each screen field) #ENDAT #AT(%LocalDataAfterClasses),DESCRIPTION('Field Validation, field coloring support variables') CurCtrlFeq LONG FieldColorQueue QUEUE Feq LONG OldColor LONG END #ENDAT #AT(%ControlEventHandling),PRIORITY(7500),DESCRIPTION('Perform field level validation') #SUSPEND #IF(%ControlEvent = 'Accepted') #IF(%ValidateOnAccept OR %ValidateOnNonStopSelect) #IF(%ValidateOnAccept AND %validateOnNonStopSelect) #INSERT(%RecordValidationCode) #ELSIF(%ValidateOnAccept) #?IF %Window{Prop:AcceptAll} = False #INSERT(%RecordValidationCode) #?END #ELSE #?IF %Window{Prop:AcceptAll} = True #INSERT(%RecordValidationCode) #?END #ENDIF #ENDIF #ENDIF #RESUME #ENDAT #AT(%ControlEventHandling),PRIORITY(7500),DESCRIPTION('Reset coloured background') #SUSPEND ! '%ControlEvent' #IF(%ControlEvent = 'NewSelection') #INSERT(%ResetFieldColour) #ENDIF #RESUME #ENDAT #!---------------------------------------------------------------- #GROUP(%RecordValidationCode) #FIND(%ControlToExclude,%Control) #IF(NOT %ControlToExclude) #CASE(%ControlType) #OF('ENTRY') #OROF('SPIN') #OROF('DROP') #OROF('COMBO') #FIND(%Field,%ControlUse) #IF (%Field AND (%FieldLookup OR %FieldRangeLow OR %FieldRangeHigh)) IF Access:%File.TryValidateField(%(%FieldNumber(%Field,%File))) #ELSIF (%FieldValidation = 'NONZERO') #! Added for 'Cannot be zero or empty IF (CLIP(%Field) = '' OR (%Field = 0 AND UPPER(SUB('%FieldPicture',1,2)) <> '@S')) Then #IF(%ValidateUsingColoration) FieldColorQueue.Feq = %Control GET(FieldColorQueue, FieldColorQueue.Feq) IF ERRORCODE() FieldColorQueue.OldColor = %Control{Prop:BackGround} #

Today is April 24, 2024, 8:19 pm
This article has been viewed 35119 times.



Back to article list   Search Articles   Add Comment   Printer friendly

Login

User Name:

Password: