User Tools

Site Tools


evaluate_return_runtime_expression_string_result_.htm
Navigation:  Language Reference > 10 - Expressions > Runtime Expression Evaluation >====== EVALUATE (return runtime expression string result) ====== Previous pageReturn to chapter overviewNext page

 

EVALUATE(expression)

blk2blue.jpg

EVALUATE Evaluates runtime expression strings.
expression A string constant or variable containing the expression to evaluate.

The EVALUATE procedure evaluates the expression and returns the result as a STRING value. If the expression does not meet the rules of a valid Clarion expression, the result is a null string (''), and ERRORCODE is set. A logical expression returns a string containing either zero ('0') or one ('1'), while an arithmetic expression returns the actual result of the expression (in a string). The more variables are bound at one time, the slower the EVALUATE procedure works. Therefore, BIND(group) should only be used when most of the group's fields are needed, and UNBIND should be used to free all variables and user-defined procedures not currently required for use in dynamic expressions. PATH(), SHORTPATH() and LONGPATH() can now be used in expressions evaluated by the EVALUATE statements in runtime application and in the templates.

Field Qualification syntax (dot syntax) cannot be used in the expression. Variables should be binded using the standard prefix notation.

Return Data Type:     STRING

Errors Posted:

1010 Illegal Expression
1011 Variable Not Found
1012 Mismatched
1015 Some parameters of built-in functions that are used in the expression are omitted

Example:

   MAP
AllCapsFunc PROCEDURE(STRING),STRING                !Clarion procedure
   END
Header     FILE,DRIVER('Clarion'),PRE(Hea),BINDABLE  !Declare header file layout
OrderKey    KEY(Hea:OrderNumber)
Record      RECORD
OrderNumber  LONG
ShipToName   STRING(20)
           END
          END
 
StringVar   STRING(20)
  CODE
    BIND('ShipName',Hea:ShipToName)
    BIND('SomeFunc',AllCapsFunc)
    BIND('StringVar',StringVar)
    StringVar = 'SMITH'
    CASE EVALUATE('StringVar = SomeFunc(ShipName)') 
    OF ''
         IF ERRORCODE()
          MESSAGE('Error ' & ERRORCODE() & ' -- ' & ERROR())
         END
    OF '0'
          DO NonSmithProcess 
    OF '1'
          DO SmithProcess 
    END
 
AllCapsFunc PROCEDURE(PassedString)
  CODE
    RETURN(UPPER(PassedString))
     
!***Additional Examples
    BIND('Value1',Self.Value1)
    BIND('StrVar',StringVar)
    Self.Value1 = '15 + 10'
    Evaluate(Value1)     !Returns 25
    StringVar = 'True'
    Evaluate('StrVar')   !Returns the characters 'True' (without the quotes)

See Also:

BIND

BINDEXPRESSION

FILTER

ORDER

POPBIND

PUSHBIND

UNBIND

evaluate_return_runtime_expression_string_result_.htm.txt · Last modified: 2023/09/08 07:27 by carlbarnes