Here you will define expressions that perform the required calculation. Create or modify an expression by:

      typing into the main input area; entries are suggested as you type and are refined as you continue typing so you can select the required entry by clicking on it or pressing Enter.

      clicking on a button to incorporate an operator, as follows:

Symbol

Description

+

Addition

-

Subtraction

*

Multiplication

/

Division

%

Modulus. This provides the remainder after dividing the first numeric expression by the second one.

For example 9 % 3 = 0 (as 9 is divisible by 3, with no remainder).

While 9 % 2 = 1 (as 2 goes into 9 4 times, with 1 remaining).

=

Equals

> 

Greater Than

< 

Less Than

<> 

Not Equal To

And

Logical And. Performs logical conjunction on two Boolean expressions.

Or

Logical Or. Performs logical disjunction on two Boolean expressions.

Not

Logical Not. Performs logical negation on a Boolean expression.

( )

Opening/Closing bracket. Used in conjunction with group statements in an expression and apply an order of precedence in which the statements are evaluated.


You can also click a:

      Field to see any notes relating to a field you have selected for inclusion in the report. You cannot select these fields here but must select them as part of your typed entry.

      Function to see the required syntax for that function so that you can key it in correctly. The available functions are:

Function

Description

RTRIM (value)

Removes any trailing whitespace from text

e.g. RTRIM([ATDesc])

LTRIM (value)

Removes any leading whitespace from text

e.g. LTRIM([ATDesc])

SUBSTRING (Value, Start, Length)

Returns the requested section of text

e.g. SUBSTRING(‘MyString’,1,2)

DATEPART (Part, Date)

Returns a number representing the specified part of the date. See date formats below.

e.g. DATEPART(M,[TSDate])

LEN(Value)

Returns the number of characters within the supplied text

e.g. LEN(‘MyString’)

ISNULL (Value, With)

If the value is null it is replaced 

e.g. ISNULL(NULL,’X’)

IIF (Expression, True, False)

If the expression is true replace with the “True” value else replace with the “False” value

e.g. IIF([COCode]=’CST001’,’A’,’B’)

CONVERT (Type, Input [, Style])

Converts one data type to another. See Data types below. See Styles below.

e.g. CONVERT(MONEY,123456)

e.g. CONVERT(DATETIME,’DD/MM/YYYY’,103)

CASE

   WHEN condition 1 THEN result 1

   WHEN condition 2 THEN result 2

ELSE

   result 3

END

Evaluates a number of conditions and returns the appropriate result

IN (item1, item2, …)

Is the value one of the items listed

e.g. IIF([COCode] IN ('CST001', 'CST002'), 'YES', 'NO')

EXISTS

 

LIKE(String)

Does the value match the supplied string

% Any number of characters

_ Any single character

[] Any single character within the range or set e.g. [a-f] or [abcdef]

[^] Any single character not within the range or set e.g. [^a-f] or [^abcdef]

e.g. IIF([COCode] LIKE ('CST%'), 'YES', 'NO')

NOT

Reverses the value of a Boolean expression

e.g. IIF([COCode] NOT LIKE ('CST%'), 'YES', 'NO')

OR

Returns True if any of the compared conditions are True

e.g. IIF([COCode]='CST001' OR [COCode]='CST002', 'YES', 'NO')

AND

Returns True if all the compared conditions are True

e.g. IIF([COCode]='CST001' AND [TSIsInvoiced]=TRUE, 'YES', 'NO')

BETWEEN value1 AND value2

returns True if the test value is greater than or equal to value1 and less than or equal to value2

e.g. IIF([TSYear] BETWEEN 2015 AND 2020,'YES', 'NO')

DISTINCT

 

GETDATE ()

Returns the system date

e.g. GETDATE()

TRUE

Used to check the status of a Boolean field

e.g. IIF([TSChargeable]=TRUE,’YES’,’NO’)

FALSE

Used to check the status of a Boolean field

e.g. IIF([TSChargeable]=FALSE,’YES’,’NO’)

CONCAT ( string_value1, string_value2, string_valueN ] ) 

 

Concatenate fields together to create a single string e.g. CONCAT([Start Date], ‘:’, [Project Name], ‘:’ [Total]) for the result 10/01/2020:My Project:1234


For the CONVERT function, data types are:

Type

Description

BIGINT

-2^63 (-9,223,372,036,854,775,808) to 2^63-1 (9,223,372,036,854,775,807)

INT

-2^31 (-2,147,483,648) to 2^31-1 (2,147,483,647)

SMALLINT

-2^15 (-32,768) to 2^15-1 (32,767)

TINYINT

0 to 255

BIT

An integer data type that can take a value of 1, 0, or NULL.

DECIMAL

Numeric data types that have fixed precision and scale. Decimal and numeric are synonyms and can be used interchangeably.

NUMERIC

Numeric data types that have fixed precision and scale. Decimal and numeric are synonyms and can be used interchangeably.

MONEY

Data types that represent monetary or currency values.

FLOAT

Approximate-number data types for use with floating point numeric data

REAL

 

DATETIME

Defines a date that is combined with a time of day with fractional seconds that is based on a 24-hour clock.

SMALLDATETIME

Defines a date that is combined with a time of day. The time is based on a 24-hour day, with seconds always zero (:00) and without fractional seconds.

CHAR

Fixed-size string data

VARCHAR

Variable-size string data

TEXT

Variable-length non-Unicode data in the code page of the server and with a maximum string length of 2^31-1 (2,147,483,647)

NCHAR

Fixed-size string data

NVARCHAR

Variable-size string data.

NTEXT

Variable-length Unicode data with a maximum string length of 2^30 - 1 (1,073,741,823) bytes

BINARY

binary [(n)] Fixed-length binary data with a length of n bytes


and styles are:

Style

Standard

Description

1

US

mm/dd/yy

101

US

mm/dd/yyyy

2

ANSI

yy.mm.dd

102

ANSI

yyyy.mm.dd

3

British / French

dd/mm/yy

103

British / French

dd/mm/yyyy

4

German

dd.mm.yy

104

German

dd.mm.yyyy

5

Italian

dd-mm-yy

105

Italian

dd-mm-yyyy

6

 

dd mon yy

106

 

dd mon yyyy

7

 

Mon dd, yy

107

 

Mon dd, yyyy

8, 24 or 108

 

hh:mi:ss

9 or 109

 

mon dd yyyy hh:mi:ss:mmmAM (or PM)

10

US

mm-dd-yy

110

US

mm-dd-yyyy

11

Japan

yy/mm/dd

111

Japan

yyyy/mm/dd

12

ISO

yymmdd

112

ISO

yyyymmdd

13 or 113

Europe Default + Milliseconds

dd mon yyyy hh:mi:ss:mmm (24h)

14 or 114

 

hh:mi:ss:mmm (24h)


For the DATEPART function, data format strings are:

Format

Abbreviation

DAYOFYEAR

DY, Y

DAY

DD, D

WEEK

WK, WW

WEEKDAY

DW

MONTH

MM, M

QUARTER

QQ, Q

YEAR

YY, YYYY

HOUR

HH

MINUTE

MI, N

SECOND

SS, S

MILLISECOND

MS

MICROSECOND

MCS

NANOSECOND

NS

TZOFFSET

TZ

ISO_WEEK

ISOWK, ISOWW


Once you complete the expression, click Apply to incorporate the calculated field into the report. A warning appears if the expression is incomplete or otherwise invalid.