Template #Prompt REQuired vs #Validate - Error message expansion

If you need to get more information out of a #Validate message, here is a tip
1, if using #Validate, make sure #Prompt does not have the REQuired attribute.
The REQuired attribute will popup its error message instead of the #Validate error message.and the #Validate error message can give you more information in complicated multi prompt situations.

2, Example of generating more informative messages for complicated multi prompt situations

#Tab(’&1 Some Text’)
#Prompt(‘StringField’,@s255),%stringfield
#Validate(%groupValidateCode,‘Error message:’ & %ValidateErrorMSG)
#EndTab
#Tab(’&2 Debug’)
#Prompt(’%ValidateErrorMSG’,TEXT),%ValidateErrorMSG
#EndTab
or
#Declare(%ValidateErrorMSG)

#Group(%groupValidateCode)
#IF(some condition fails)
#Set(%ValidateErrorMSG,'1st condition fail<13,10><13,10>You can have a multi line error message appear here')
#Return %False
#ElsIF(some other condition fails)
#Set(%ValidateErrorMSG,'2nd condition fail <13,10> You can have a multi line error message appear here')
#Return %False
#Else
#Set(%ValidateErrorMSG,'3rd condition fail - You can have a multi line error message appear here')
#Return %False
#EndIF

All the #Validate examples in the shipping templates only show a single line text error message and this is how you can expand the error message functionality of #Validate to be a bit more helpful. You can also adapt this for debugging purposes by making all #Return %False, or in the #Group(%groupValidateCode) add another #Call(%grpSendDebugView(‘Some Message Here’) and then create another group which calls Debugview from a clarion proc called from #RunDll.

Also worth pointing out, if you have lots of tabs in a template using the HSCROLL, use the ampersand and number in the tab description and then use ALT+[number] to cycle/jump directly to the tab in question when in the app gen. (Lee should like that one considering he likes keyboard navigation). :wink:
If you have more than ten tabs, pressing ALT+2 will take you to tab 2 and then tab 12, tab 22 and so on but the format is
tab(’&2 some text’)
tab(‘1&2 some text’)
tab(‘2&2 some text’)

probably obvious to some, but its not something I’ve ever seen used in other templates.