Общие сведения
Надежность и безопасность
Начало работы
Общие концепции
Учёт времени
Управление проектами
FAQ
Управление ресурсами
Управление финансами
Управление затратами
Управление биллингом
Управление задачами
Компоненты
Концепции
Инструкции
On-premises
Аналитика
Типы отчётов
Использование отчётов
Группировка и суммирование данных источника
Группировка данных в отчете
Типы виджетов
Общие отчёты и шаблоны
Настройка отчёта
Пользовательские настройки отчёта
Вычисляемые поля
Выражения вычисляемых полей
Использование панелей мониторинга
Публикация панелей
Фильтры источников данных
Настройка и администрирование
Типовой порядок настройки системы
API
История изменений

Выражения вычисляемых полей

Обновлено: 30.11.2023

Назначение

Значения ячеек в вычисляемом поле (подробнее — Вычисляемые поля) задаются её выражением.
В выражении допускаются ссылки на другие поля в строке данных, арифметические и логические операторы, а также встроенные функции.

Синтаксис

Имена полей заключаются в квадратные скобки:

[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» — 15.06.2009T13:45:30 -> 6/15/2009 (en-US)
  • «D» — 15.06.2009T13:45:30 -> Monday, June 15, 2009
  • «f» — 15.06.2009T13:45:30 -> Monday, June 15, 2009 1:45 PM (en-US)
  • «F» — 15.06.2009T13:45:30 -> Monday, June 15, 2009 1:45:30 PM (en-US)
  • «g» — 15.06.2009T13:45:30 -> 6/15/2009 1:45 PM (en-US)
  • «G» — 15.06.2009T13:45:30 -> 6/15/2009 1:45:30 PM (en-US)
  • «M» — 15.06.2009T13:45:30 -> June 15 (en-US)
  • «Y» — 15.06.2009T13:45:30 -> June, 2009 (en-US)
  • «t» — 15.06.2009T13:45:30 -> 1:45 PM (en-US)
  • «%d» — 01.06.2009T13:45:30 -> 1
  • «dd» — 01.06.2009T13:45:30 -> 01
  • «ddd» — 15.06.2009T13:45:30 -> Mon (en-US)
  • «dddd» — 15.06.2009T13:45:30 -> Monday (en-US)
  • «%M» — 15.06.2009T13:45:30 -> 6
  • «MM» — 15.06.2009T13:45:30 -> 06
  • «MMM» — 15.06.2009T13:45:30 -> Jun (en-US)
  • «MMMM» — 15.06.2009T13:45:30 -> June (en-US)
  • «%y» — 01.01.0001T00:00:00 -> 1
  • «yy» — 01.01.0001T00:00:00 -> 01
  • «yyy» — 01.01.0001T00:00:00 -> 001
  • «yyyy» — 01.01.0001T00: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

Содержание

Назначение Синтаксис Операторы Функции работы со строками и форматирования Concat Format Список часто используемых форматов Функции работы с числами Floor Round Min Max Функции работы с датами GetDate DateDiff Функции условий Coalesce In If IsNullOrZero IsNull IsNullOrEmpty
Ничего не найдено

Перейти на русскую версию?