Navigation: Templates > Template Language Reference > Complete Alpha Listing >====== #RESTRICT (define section use constraints) ====== | ![]() ![]() |
#RESTRICT [, WHERE( expression ) ]
statements
#ENDRESTRICT
| #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')





