Academic Company Events NI Developer Zone Support Solutions Products & Services Contact NI MyNI

Document Type: Tutorial
NI Supported: Yes
Publish Date: Sep 6, 2006


Feedback


Yes No

Related Categories

Related Links - Developer Zone

Related Links - Products and Services

What are Expression Strings in TestStand?

2 ratings | 5.00 out of 5
Print

Overview

TestStand built-in step types contain properties that are instances of the String data type. While TestStand uses most of these properties for normal string values, some of them store an expression string. This document describes expression strings, which will help you avoid common run-time errors when you directly modify properties containing expression strings.

Definition

An expression string is a string that represents an expression that TestStand evaluates at run time. The result of the evaluation must be a string value. In other words, a step property that is used for an expression string, rather than for holding a literal string that TestStand evaluates at run time, holds an expression string whose run-time evaluation returns the literal string value.

Example


The title of the Message Popup step type is stored in the property TStep.TitleExpr as an expression string. This expression string is normally set in the TStep.TitleExpr property when you fill out the Title Expression control in the Configure Message Box Step dialog box, as shown in the figure below. Notice that the title expression below is a concatenation of a literal string enclosed in double quotes, and a numeric value that is converted to a string. When this expression string is evaluated, it returns a single string that is used as the title (e.g. TITLE NUMBER 5).


[+] Enlarge Image

You also can dynamically change the message popup title by programmatically assigning a new expression string to the TStep.TitleExpr property. One way to make this change is through the Pre Expression control of the step, as shown in the figure below. When you make this assignment, enclose all literal string values in double quotes. If they are not enclosed in double quotes, they will be interpreted as names of properties.

In the example scenarios below, the final desired title is New Title.

Scenario 1
To change the message popup title, make a literal string assignment to the step property in the Pre Expression. A common mistake is to use the following syntax:

Step.TitleExpr= "NewTitle"

If you make this assignment, the value of the TStep.TitleExpr property contains the value NewTitle. Since this value is not enclosed in double quotes, NewTitle is interpreted as the name of a property rather than a literal string. A run-time error will occur if there is no property named NewTitle.

Another common mistake is to make the following assignment:

Step.TitleExpr= ""NewTitle"".

In this case, TestStand cannot determine the correct beginning and ending quotes in the assignment. The second double quote incorrectly marks the end of the assignment value. You must precede any quotes within a string with a backslash. The following is the correct assignment for a literal string.

Step.TitleExpr="\"NewTitle\"".

After this assignment, the value of the TStep.TitleExpr property contains the characters "NewTitle", which will be interpreted correctly as a literal string.
    Scenario 2
    You also can assign Step.TitleExpr the value of another string property, as shown in the following assignment:

    Step.TitleExpr=Locals.MyString.

    A common mistake is to assign the value of Locals.MyString to be NewTitle. After this assignment, the value of the TStep.TitleExpr property contains the value NewTitle. Since the value is not enclosed in double quotes, it is interpreted as a property named NewTitle instead of a string value. To solve this problem, use one of the following three solutions:
    • Leave the value of Locals.MyString as NewTitle and change the assignment to the following: Step.TitleExpr= "\"" + Locals.MyString + "\"",
      This assignment encloses the value with within double quotes. After this assignment, the value of the TStep.TitleExpr property contains the value "NewTitle".
    • Leave the value of Locals.MyString as NewTitle and change the assignment to the following: Step.TitleExpr= "Locals.MyString".
      The value of Step.TitleExpr becomes Locals.MyString since the value is not included in double quotes and is interpreted as a property when the expression string is evaluated. As long as Locals.MyString property exists, the string result returned by the evaluation is displayed as the title.
    • Change the value of Locals.MyString to include the double quotes so that the value is "NewTitle" instead of just NewTitle.

      Expression String Properties in TestStand Built-in Step Types

    The following is a list of step type properties that are used for expression strings. All other string properties are used for normal string values. For normal string values, you do not need to use a pair of double quotes for the value to be evaluated as a literal string.

    Step Type Property Name
    ----------------------------------------------------------------------------------------------------
    Message Popup TitleExpr
    MessageExpr
    Button1Label
    Button2Label
    Button3Label
    Button4Label

    Call Executable Arguments

    Property Loader Database.SQLStatement
    Database.StepNameColumn
    File.FileExpr
    File.StartMarkerExpr
    File.EndMarkerExpr

    Open Database ConnectionString

    Open SQL Statement SQLStatement
    NI_DataOperation
    SQLStatement

    IviDmm Readings.TimeoutStatus
    Readings.IsOverRangeStatus

    IviScope Readings.TimeoutStatus

    IviTools Init.OptionsString
    2 ratings | 5.00 out of 5
    Print

    Reader Comments | Submit a comment »

     

    Legal
    This tutorial (this "tutorial") was developed by National Instruments ("NI"). Although technical support of this tutorial may be made available by National Instruments, the content in this tutorial may not be completely tested and verified, and NI does not guarantee its quality in any way or that NI will continue to support this content with each new revision of related products and drivers. THIS TUTORIAL IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND AND SUBJECT TO CERTAIN RESTRICTIONS AS MORE SPECIFICALLY SET FORTH IN NI.COM'S TERMS OF USE (http://ni.com/legal/termsofuse/unitedstates/us/).