Expressions

Expressions specify how to find or calculate a value when the report runs. Properties of a report item that can be configured using expressions are located in the Expressions Panel . To learn more about how to configure a property with an expression see the Expression Editor.

Expressions allow you to:

Expression Components

Expressions in VertiGIS Studio Report Designer can be made up of one or many of the following components:

To see a complete list of the operators, literals, and functions that you can use in expressions, see Operators, Literals, and Functions.

Syntax of Expressions

Follow the syntax conventions below when you create expressions:

Types of Expressions

String Expressions

String expressions are expressions that evaluate to a string. A complex string expression combines (concatenates) a number of string literals, data fields, and functions using the concatenation operator, +.

String literals are enclosed in single quotes, for example, 'This is a string literal'. Note that you cannot use double quotes (") instead of single quotations. To embed an apostrophe into a string literal, type a two apostrophes, for example, 'It''s an example' appears in the report as: It's an example

Concatenating strings in an expression allows you to build complex strings that contain data. One common scenario is labelling data. For example, to label a record's object ID, you could use an expression like'Object ID: ' + [objectid]. This appears in the report as, for example: Object ID: 19245

In other situations, you may want to build phrases or complete sentences. For example, the expression 'Towns with a population of ' + [MaxPop] + ' or less are eligible to apply for a ' + [ProgramName] + '.' appears in the report as, for example: Towns with a population of 50000 or less are eligible to apply for a Small Town Improvement Grant.

You can configure multiple lines of text in a single string expression by using the NewLine() function. For example, suppose you want to configure a Label control to present data for a person's name on the first line and the person's address on subsequent lines, such as the following:

Jennifer Scott
465 Mallory Lane
Denver, CO
80022

To do this, you could configure an expression like this:

[Name] + NewLine() + [StreetAddress] + NewLine() + [City] + ', ' + [State] + NewLine() + [ZipCode]

As an alternative to the + concatenation operator, you can use the Concat() function to concatenate any number of strings. For example, to label data, you could use an expression like this: Concat('Object ID: ', [objectid])

See also...

String Functions

Conditional Expressions

You can use conditional values in a report by using the logical function, Iif(). The Iif() function takes three arguments: a Boolean expression, a value to use if the Boolean expression evaluates to True, and a value to use if the Boolean expression evaluates to False. The arguments are separated by commas: Iif(BoolenExpression, TruePart, FalsePart).

For example, to present the value of a Boolean data field in a report, you could use the expression Iif([BooleanField],True,False). More commonly, you use values that reflect what the field represents instead of True and False, for example, Iif([RoadClosed], 'Road Closed', 'Road Open'). The conditional values do not have to be literals—they can be expressions. For example, Iif([CropArea]<=10, 'Livestock: '+[HasLivestock]+' Produce: '+[HasProduce]+' Flowers: '+[HasFlowers], 'Not a market garden').

Examples of Expressions

Expression

Result Type

Description

[OBJECTID]

Same as the type of the data field

Evaluates to the value of the OBJECTID field for the current record, for example: 145632

'Object ID: ' + [OBJECTID]

String

Concatenates the "Object ID: " string with the value of the OBJECTID field for the current record, for example: Object ID: 145632

[Distance] + [DistanceUnits]

String

Concatenates the value of the current record's Distance field and the value of the current record's DistanceUnits field, for example: 26.3km

[pop2018] - [pop2014]

Numeric

Calculates the difference between the values of the pop2018 field and pop2014 field, for example, if pop2018 is 966 and pop2014 is 711: 255

'Population Change: ' + ([pop2018] - [pop2014])

String

Concatenates the "Population Change: " string with the difference between pop2018 and pop2014, for example: Population Change: 255

[STATENAME] == 'California'

Boolean

Evaluates to True if the value of the current record's STATENAME field is California. Otherwise, it evaluates to False.

[MyLayer.OBJECTID] In(?FeatureIds)

Boolean

Evaluates to True if the value of the current record's OBJECTID field is one of the features currently selected by the user. Otherwise, it evaluates to False.

An expression similar to this is used to present the current selection set in the report. See Use the Current Features as Report Inputs.

Today()

Date

Evaluates to today's date, for example: 23 July, 2018

Today() is a function. For more information, see Expressions.