| **Navigation:**  [[templates.htm|Templates]] > [[tlrcontents.htm|Template Language Reference]] > Complete Alpha Listing >====== #RESTRICT (define section use constraints) {{c6h0068.jpg|C6H0068.jpg}} ====== | [[ reports default report structures .htm|{{btn_prev_n.gif|Previous page}}]][[tlrcontents.htm|{{btn_home_n.gif|Return to chapter overview}}]][[ resume delimit conditional source .htm|{{btn_next_n.gif|Next page}}]] | | || **#RESTRICT** [, **WHERE(** //expression //**)** ] //statements// **#ENDRESTRICT** {{blk2blue.jpg|blk2blue.jpg}} | **#RESTRICT** | Specifies conditions where a Template Code Section (#CODE, #CONTROL, #EXTENSION, #PROCEDURE, #PROGRAM, or #MODULE) can be used. | | **WHERE** | The #RESTRICT //statements// are excuted only when the //expression// is true. | | //expression// | A logical expression to limit execution of the #RESTRICT //statements//. | | //statements// | Template language code to #ACCEPT or #REJECT use of the section which contains the #RESTRICT structure. | | **#ENDRESTRICT** | Terminates the #RESTRICT structure. | The **#RESTRICT** structure provides a mechanism to limit the availability of a Template Code Section (#CODE, #CONTROL, #EXTENSION, #PROCEDURE, #PROGRAM, or #MODULE) at application design time to only those points where the generated code would be appropriate. Any WHERE clause on the Template Code Section is evaluated first, before #RESTRICT. The #ACCEPT statement may be used to explicitly declare the section as appropriate for use. An implicit #ACCEPT also occurs if the #RESTRICT //statements// execute without encountering a #REJECT statement. The #REJECT statement must be used to specifically exclude the section from use. Both the #ACCEPT and #REJECT statements immediately terminate processing of the #RESTRICT code. **Example:** #CODE(ChangeControlSize,'Change control size') #RESTRICT #CASE(%ControlType) #OF('LIST') #OROF('BUTTON') #REJECT #ELSE #ACCEPT #ENDCASE #ENDRESTRICT #PROMPT('Control to change',CONTROL),%MyField,REQ #PROMPT('New Width',@n04),%NewWidth #PROMPT('New Height',@n04),%NewHeight %MyField{PROP:Width} = %NewWidth %MyField{PROP:Height} = %NewHeight #CODE(ControlValueValidation,'Control Value Validation') #RESTRICT #CASE(%ControlType) #OF('ENTRY') #OROF('SPIN') #OROF('COMBO') #CASE(%ControlEvent) #OF('Accepted') #OROF('Selected') #ACCEPT #ELSE #REJECT #ENDCASE #ELSE #REJECT #ENDCASE #ENDRESTRICT #DISPLAY('This Code Template is used to perform a control value') #CONTROL(PauseButton,'Pause the Process'),WINDOW #RESTRICT #IF ( UPPER(%ProcedureTemplate) = 'REPORT' OR UPPER(%ProcedureTemplate) = 'PROCESS' ) #ACCEPT #ELSE #REJECT #ENDIF #ENDRESTRICT #PROMPT('Pause Text',@S20),%PauseText,DEFAULT('Pause') #PROMPT('Restart Text',@S20),%RestartText,DEFAULT('Restart') **See Also:     **[[ accept section valid for use .htm|#ACCEPT]] ,[[ reject section invalid for use .htm|#REJECT]]