# Template #Prompt REQuired vs #Validate - Error message expansion

**URL:** <https://clarionhub.com/t/template-prompt-required-vs-validate-error-message-expansion/5061>\
**Category:** tips\
**Tags:** templates\
**Created:** [April 30, 2022, 1:46am UTC](https://clarionhub.com/t/template-prompt-required-vs-validate-error-message-expansion/5061 "2022-04-30T01:46:01Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![anon23294430](https://clarionhub.com/user_avatar/clarionhub.com/anon23294430/32/3829_2.png) [@anon23294430](https://clarionhub.com/u/anon23294430)\
**Post date:** [April 30, 2022, 1:46am UTC](https://clarionhub.com/t/template-prompt-required-vs-validate-error-message-expansion/5061/1 "2022-04-30T01:46:02Z")

</div>

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). 😉  
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.
