User Tools

Site Tools


symbols_dependent_on_procedure.htm
Navigation:  Templates > Template Language Reference > Template Symbols > Built-in Symbols >====== Symbols Dependent on %Procedure C6H0068.jpg ====== Previous pageReturn to chapter overviewNext page

The following symbols are in alphabetical order:

%ActiveTemplate The names of all templates used in the procedure. Multi-valued. Dependent on %Procedure.The names are in the format “MyTemplateName(MyChainName)” [with the double quotes], where “MyChainName” is the name used in the #TEMPLATE that contains the “MyTemplateName” template.
%ActiveTemplateInstance The instance numbers of all templates used in the procedure. Multi-valued. Dependent on %ActiveTemplate.
%ActiveTemplateInstanceDescription The description of the template. Dependent on %ActiveTemplateInstance.
%ActiveTemplateOwnerInstance The instance number of the extension template which auto-populated the current extension template into a procedure through use of the parameter to the APPLICATION attribute on a #EXTENSION statement. Dependent on %ActiveTemplateInstance.
%ActiveTemplateParentInstance The instance number of the control template's parent control template. This is the control template that it is “attached” to. Dependent on %ActiveTemplateInstance.
%ActiveTemplatePrimaryInstance The instance number of the control template's primary control template. This is the first control template in a succession of multiple related control templates. Dependent on %ActiveTemplateInstance.
%ActiveTemplateType The type of all templates used in the procedure. Multi-valued. Dependent on %ActiveTemplate. Returns CODE, EXTENSION or CONTROL.
%LocalData The labels of all local variable declarations made through the Data button on the Procedure Properties window. Multi-valued. Dependent on %Procedure.
%LocalDataID Same as %LocalData
%LocalDataFull Returns full identifiers of variables or fields. For fields inside compound structures with prefixes %LocalDataFull returns prefixed field identifiers.
%LocalDataStatement The variable's declaration statement (data type and all attributes). Dependent on %LocalData.
%LocalDataDescription A short description of the field. Dependent on %LocalData.
%LocalDataHeader The field's default report column header. Dependent on %LocalData.
%LocalDataPicture Default display picture. Dependent on %LocalData.
%LocalDataJustType Contains L, R, C, or D for the field's justification. Dependent on %LocalData.
%LocalDataJustIndent The justification offset amount. Dependent on %LocalData.
%LocalDataFormatWidth The default width for the field's ENTRY control. Dependent on %LocalData.
%LocalDataUserOptions A string containing the entries the user made in the User Options text box on the Options tab for the local variable. Dependent on %LocalData.
%Procedure The names of all procedures in the application. Multi-valued.
%ProcedureToDo Contains 1 if the procedure is “ToDo.” Dependent on %Procedure.
%ProcedureType Contains PROCEDURE or FUNCTION. Dependent on %Procedure.
%ProcedureReturnType The data type returned, if the procedure is a FUNCTION. Dependent on %Procedure.
%ProcedureDateCreated The procedure creation date (a Clarion standard date). Dependent on %Procedure.
%ProcedureDateChanged The date the procedure was last changed (a Clarion standard date). Dependent on %Procedure.
%ProcedureTimeCreated The time the procedure was created (a Clarion standard time). Dependent on %Procedure.
%ProcedureTimeChanged The time the procedure was last changed (a Clarion standard time). Dependent on %Procedure.
%ProcedureReadOnly Contains 1 if the procedure is read only. Dependent on %Procedure.
%ProcedureIsGlobal Contains 1 if the procedure is to be declared in the global MAP. Dependent on %Procedure.
%Prototype The procedure's prototype for the MAP structure. Dependent on %Procedure.
%ProcedureTemplate The name of the Procedure Template used to generate the procedure. Dependent on %Procedure.
%ProcedureDescription A short description of the procedure. Dependent on %Procedure.
%ProcedureCategory The procedure's category. Dependent on %Procedure.
%ProcedureExported Contains 1 if the procedure is in a DLL and is callable from outside the DLL. Dependent on %Procedure.
%ProcedureLongDescription A long description of the procedure. Dependent on %Procedure.
%ProcedureLanguage The target language the procedure template generates. Dependent on %Procedure.
%ProcedureCalled The names of all procedures listed by the Procedures button on the Procedure Properties window. Multi-valued. Dependent on %Procedure.

The March 25, 2013 Clarion Sharp blog documented new Clarion 9 Template Symbols for the Procedure Parameters.

As part of the ongoing work and evolution of the Win32 AppGen, and based on numerous requests the following template symbols are now built-in (as opposed to defined at the template level):

%Parameters – single, dependent from %Procedure The full list of a procedure’s formal parameters separated by commas and enclosed in parentheses unless empty

%ProcedureParameterName – multi, dependent from %Procedure The list of names of all formal parameters as entered in %Parameters symbols; if missing then the name of that parameter as in %Prototype symbol is returned; if that is missing too, an AppGen generated name is returned

The Blog was incorrect stating %ProcedureParameterName was Multi, the correct symbol is %ProcedureParameters.

%ProcedureParameters (correction) – multi, dependent from %Procedure The list of names of all formal parameters as entered in %Parameters symbols; if missing then the name of that parameter as in %Prototype symbol is returned; if that is missing too, an AppGen generated name is returned

%ProcedureParameterName – single multi, dependent from %ProcedureParameters Names of parameter as entered in %Parameters symbols; if missing then the name of that parameter as in %Prototype symbol is returned; if that is missing too, an AppGen generated name is returned

%ProcedureParameterOrigName – single, dependent from %ProcedureParameters The name of the parameter as entered in the %Prototype symbol

%ProcedureParameterType – single, dependent from %ProcedureParameters The type of the parameter as entered in the %Prototype symbol (without the CONST keyword and square brackets for array types)

%ProcedureParameterDefault – single, dependent from %ProcedureParameters The default value of parameters as entered in the %Prototype symbol

%ProcedureParameterOmitted – single, dependent from %ProcedureParameters Returns %True if the parameter is declared as omittable in the %Prototype symbol

%ProcedureParameterByReference – single, dependent from %ProcedureParameters Returns %True if the parameter’s type is declared with leading * in the %Prototype symbol

%ProcedureParameterConstant – single, dependent from %ProcedureParameters Returns %True if the parameter’s type is declared with the CONST keyword in the %Prototype symbol

And a new built-in symbol has been introduced into C9:

%ProcedureParameterDIMs – single, dependent from %ProcedureParameters Returns the number of dimensions if the parameter’s type is declared as an array in the %Prototype symbol (1 for [] , 2 for [,] , etc.)

The updated Application Generator reads TXA files produced by earlier Clarion versions. TXA files produced by the C9 AppGen can’t be read by previous versions.


A template is available on GitHub to enumerate these new symbols as comments to see the exact values returned.

!------------Extension: ParamSymbolsTestC9 from ParamSymbolsTestC9tpl ------------
!---------------------------------------------------------------------------------
! %Prototype:   (<CONST *BYTE[] P1>, BYTE P2_Def=2, <BYTE P3_Omt>, *BYTE P4_Addr, *LONG[] A1, *SHORT[,] A2, ? U1, *? U2)
! %Parameters:  (<CONST *BYTE[] P1>,BYTE P2_Def,<BYTE P3_Omt>,*BYTE P4_Addr,*LONG[] A1,*SHORT[,] A2,? U1,*? U2) 
!----------------------------------------------------------------------------------
! #FOR(%ProcedureParameters)  is MULTI dependent on %Procedure
!----------------------------------------------------------------------------------
! Parameter # 1 - BYTE P1 
! %ProcedureParameters           = P1                    ! Name also, was hoping was entire parameter
! %ProcedureParameterName        = P1                    ! Name from Parameters
! %ProcedureParameterOrigName    = P1                    ! Name from Protoype
! %ProcedureParameterType        = BYTE                  ! TYPE w/o CONST * [] decoration &  UPPER
! %ProcedureParameterDefault     =                       ! Value if TYPE NAME=Default Value
! %ProcedureParameterOmitted     = 1                     ! %True (1) if <omitted>
! %ProcedureParameterByReference = 1                     ! %True (1) if *TYPE (by Address), no * then %False 
! %ProcedureParameterConstant    = 1                     ! %True (1) if CONST
! %ProcedureParameterDIMs        = 1                     ! TYPE[] Array 1=[] 2=[,] 3=[,,] ... 0=Not[]
!----------------------------------------------------------------------------------
! Parameter # 2 - BYTE P2_Def 
! %ProcedureParameters           = P2_Def                ! Name also, was hoping was entire parameter
! %ProcedureParameterName        = P2_Def                ! Name from Parameters
! %ProcedureParameterOrigName    = P2_Def                ! Name from Protoype
! %ProcedureParameterType        = BYTE                  ! TYPE w/o CONST * [] decoration &  UPPER
! %ProcedureParameterDefault     = 2                     ! Value if TYPE NAME=Default Value
! %ProcedureParameterOmitted     =                       ! %True (1) if <omitted>
! %ProcedureParameterByReference =                       ! %True (1) if *TYPE (by Address), no * then %False 
! %ProcedureParameterConstant    =                       ! %True (1) if CONST
! %ProcedureParameterDIMs        = 0                     ! TYPE[] Array 1=[] 2=[,] 3=[,,] ... 0=Not[]
!----------------------------------------------------------------------------------
symbols_dependent_on_procedure.htm.txt · Last modified: 2021/04/17 00:13 by carlbarnes