| **Navigation:**  [[templates.htm|Templates]] > [[tlrcontents.htm|Template Language Reference]] > Complete Alpha Listing >====== #PROCEDURE (begin a procedure template) {{c6h0068.jpg|C6H0068.jpg}} ====== | [[ priority set new embed priority level .htm|{{btn_prev_n.gif|Previous page}}]][[tlrcontents.htm|{{btn_home_n.gif|Return to chapter overview}}]][[ program global area .htm|{{btn_next_n.gif|Next page}}]] | | || **#PROCEDURE(** //name, description// [, //target// ] **)**[, **REPORT** ] [, **WINDOW** ] [, **HLP(** //helpid// **)** ] [, **PRIMARY(** //message//** **[**, **//flag//**// //**] **)** ] [, **QUICK(** //wizard// **)** ] [, **PARENT**( //name//(//family//) ) ] {{blk2blue.jpg|blk2blue.jpg}} | **#PROCEDURE** | Begins a procedure template. | | //name// | The label of the procedure template. This must be a valid Clarion label. | | //description// | A string constant describing the procedure Template. | | //target// | A string constant that specifies the source language the template generates. If omitted, it defaults to Clarion. | | **REPORT** | Tells the Application Generator to make the Report Formatter available. | | **WINDOW** | Tells the Application Generator to make the Window Formatter available. | | **HLP** | Specifies on-line help is available. | | //helpid// | A string constant containing the help identifier. This may be either a Help keyword or "context string." | | **PRIMARY** | Specifies at least one file must be placed in the procedure's Data / Tables Pad. | | //message// | A string constant containing a message that appears in the Data / Tables Pad next to the procedure's Primary file. | | //flag// | If present, contains OPTIONAL (the file is not required), OPTKEY (the key is not required), or NOKEY (the file is not required to have a key). | | **QUICK** | Specifies the procedure has a wizard #UTILITY that runs when the **Use Procedure Wizard** box is checked. | | //wizard// | The identifier (including template class, if necessary) of the wizard #UTILITY template. | | **PARENT** | Specifies that the procedure has a parent procedure, and inherits all of the prompts and interfaces of that parent procedure. | | //name// | A string constant naming the parent procedure ' Example: //window// | | //family// | The name of the template class where the parent procedure name is defined. Example: //ABC// | | | | The **#PROCEDURE** statement begins a Procedure template. A Procedure template contains the Template and //target// language statements used to generate the source code for a procedure within your application. A #PROCEDURE section is terminated by the first occurrence of a Template Code Section (#PROGRAM, #MODULE, #PROCEDURE, #CONTROL, #CODE, #EXTENSION, or #GROUP) statement, or the end of the file. Within a Template set you may have multiple #PROCEDURE sections, but they must all have unique //name// parameters. **Example:** **#PROCEDURE(ProcName1,'This is a sample window procedure'),WINDOW** **#PROCEDURE(ProcName2,'This is a sample report procedure'),REPORT** **#PROCEDURE(ProcName3,'This is a sample anything procedure'),WINDOW,REPORT** **#PROCEDURE(Browse,'List with Wizard'),WINDOW,QUICK(BrowseWizard(Wizards))** **#PROCEDURE(Splash,'Splash Window'),WINDOW,REPORT,PARENT(Window(ABC))**