Выражение вычисляемых полей
Значения ячеек в вычисляемом поле задаются её выражением. В выражении допускаются ссылки на другие поля в строке данных, арифметические и логические операторы, а также встроенные функции.
Имена полей заключаются в квадратные скобки:
[ColumnName]
Порядок вычислений задается с помощью круглых скобок:
([ColumnName] - [ColumnName]) * 1,18
Допускается применение литералов (фиксированных текстовых строк), заключаются в одинарные кавычки:
'Text'
Операторы
- Логические: ||, &
- Отношений: ==, !=, <, <=, <, >=
- Аддитивные: +, -
- Мультипликативные: *, /, %
- Унарные: !
Функции работы со строками и форматирования
Concat
Concat(string1, string2, ...)
Возвращает объединенную строку.
Пример:
Concat('Hello', ' ', 'world') = 'Hello world'
Format
Format(template, param1, param2..., paramN)
Возвращает отформатированное значение.
Шаблон составного форматирования
Рассмотрим шаблон: Format("Проект {0} от {1:yyyy}«, [ProjectName], [ProjectCreated]]
Здесь «Проект» и «от» — фиксированный текст. Элементы форматирования — это «{0}» c индексом 0, который соответствует полю ProjectName, и «{1:yyyy}» с индексом 1, который соответствует полю ProjectCreated.
Каждый элемент форматирования имеет следующий вид и состоит из следующих компонентов: { index[, alignment][: formatString]}. Парные фигурные скобки «{» и «}» здесь обязательны.
Обязательный компонент index — это число, определяющее параметр функции.
Необязательный компонент alignment — это целое число со знаком, которое служит для указания желательной ширины поля форматирования. Если значение alignment меньше длины форматируемой строки, то alignment пропускается, и в качестве значения ширины поля используется длина форматируемой строки. Форматируемые данные выравниваются в поле по правому краю, если alignment имеет положительное значение, или по левому краю, если alignment имеет отрицательное значение. При необходимости отформатированная строка дополняется пробелами. При использовании компонента alignment необходимо поставить запятую.
Необязательный компонент formatString — это строка формата, соответствующая типу форматируемого объекта.
Список часто используемых форматов
Для форматов с указанием культуры (en-US), конечный результат зависит от языка пользователя, формирующего отчет или панель показателей.
Для полей с типом «Дата» и «Дата и время»:
- «d» — 2009-06-15T13:45:30 -> 6/15/2009 (en-US)
- «D» — 2009-06-15T13:45:30 -> Monday, June 15, 2009
- «f» — 2009-06-15T13:45:30 -> Monday, June 15, 2009 1:45 PM (en-US)
- «F» — 2009-06-15T13:45:30 -> Monday, June 15, 2009 1:45:30 PM (en-US)
- «g» — 2009-06-15T13:45:30 -> 6/15/2009 1:45 PM (en-US)
- «G» — 2009-06-15T13:45:30 -> 6/15/2009 1:45:30 PM (en-US)
- «M» — 2009-06-15T13:45:30 -> June 15 (en-US)
- «Y» — 2009-06-15T13:45:30 -> June, 2009 (en-US)
- «t» — 2009-06-15T13:45:30 -> 1:45 PM (en-US)
- «%d» — 2009-06-01T13:45:30 -> 1
- «dd» — 2009-06-01T13:45:30 -> 01
- «ddd» — 2009-06-15T13:45:30 -> Mon (en-US)
- «dddd» — 2009-06-15T13:45:30 -> Monday (en-US)
- «%M» — 2009-06-15T13:45:30 -> 6
- «MM» — 2009-06-15T13:45:30 -> 06
- «MMM» — 2009-06-15T13:45:30 -> Jun (en-US)
- «MMMM» — 2009-06-15T13:45:30 -> June (en-US)
- «%y» — 0001-01-01T00:00:00 -> 1
- «yy» — 0001-01-01T00:00:00 -> 01
- «yyy» — 0001-01-01T00:00:00 -> 001
- «yyyy» — 0001-01-01T00:00:00 -> 0001
Для полей с типом «Число» и «Дробное число»:
- «N» — 1234.567 -> 1,234.57 (en-US)
- «N0» — 1234.567 -> 1,234 (en-US)
- «N4» — 1234.567 -> 1,234.5670 (en-US)
Примеры:
Format('Наименование: {0} {1}', '001', 'Внедрение ERP') = 'Наименование: 001 Внедрение ERP' Format('{0:MMMM}, [ProjectCreated]) = 'Январь'
Функции работы с числами
Floor
Floor(number)
Возвращает ближайшее максимальное целое значение.
Пример:
Floor(112.1) = 113
Round
Round(number, precision)
Возвращает округленное значение c заданной точностью.
Пример:
Round(112.156, 2) = 112.16
Min
Min(number, number)
Возвращает минимальное из двух значений.
Пример:
Min(1, 2) = 1
Max
Max(number, number)
Возвращает минимальное из двух значений.
Пример:
Max(1, 2) = 2
Функции работы с датами
GetDate
GetDate()
Возвращает текущую дату.
Пример:
GetDate() = '2019-01-01'
DateDiff
DateDiff(datepart, startDate , endDate)
Возвращает продолжительность между startDate и endDate в заданной единице измерения.
Параметр datepart — строка, определяет единицу измерения разницы дат и может принимать значение:
- year
- quarter
- month
- week
- day
- hour
Пример:
DateDiff('day', '2019-01-01', '2019-01-10') = 10
Функции условий
Coalesce
Coalesce(object, object, ...)
Возвращает первый параметр из списка, значение которого отлично от NULL.
Пример:
Coalesce(NULL, NULL, 2) = 2
In
In(value, case1, case2, ...)
Возвращает TRUE если первый параметр равен одному из последующих.
Пример:
In('Submitted', 'Draft', 'Submitted') = TRUE
If
If(boolean, result1, result2)
Возвращает result1 если первый параметр = TRUE и result2 если иначе.
If('Draft' == 'Draft', 'It is a draft', 'It is not a draft') = 'It is a draft'
IsNullOrZero
IsNullOrZero(number)
Возвращает TRUE если параметр равен NULL или 0
Пример:
IsNullOrZero(0) = TRUE
IsNull
IsNull(object)
Возвращает TRUE если параметр равен NULL
Пример:
IsNullOrZero(0) = FALSE
IsNullOrEmpty
IsNullOrEmpty(string)
Возвращает TRUE если параметр равен NULL или пустой строке.
Пример:
IsNullOrEmpty('') = TRUE