ПРИЛОЖЕНИЕ 3. СПРАВОЧНИК ФУНКЦИЙ ДЛЯ ФОРМУЛ РАСЧЕТНЫХ АТРИБУТОВ
Таблица 9. Числовые выражения
| Функция/операция | Описание | Пример |
|---|---|---|
| [Атрибут1] + [Атрибут2] | Сложение числовых атрибутов | [Стоимость] + [Налог] |
| [Атрибут1] - [Атрибут2] | Вычитание | [План] - [Факт] |
| [Атрибут1] * [Атрибут2] | Умножение | [Количество] * [Цена] |
| [Атрибут1] / [Атрибут2] | Деление | [Сумма] / [Дни] |
| IsNull(число, значение по умолчанию) | Возвращает значение по умолчанию, если значение пустое | IsNull([Объём]) |
| Round(число) | Округляет число до ближайшего целого | Round([Стоимость]) |
| Round(число, знаки после запятой) | Округляет число до указанного количества знаков после запятой | Round([Расценка],3) |
| Round(число, знаки после запятой, правило округления) | Округляет число до указанного количества знаком после запятой и с указанным правилом округления (см. Таблица 10. Стратегии округления, используемые функцией «Round») | Round([Стоимость], 2, ToEven) |
| Ceil(число) | Округляет число вверх до ближайшего целого | Ceil([Затраты]) |
| Ceil(число, знаки после запятой) | Округляет число вверх до указанного количества знаков | Ceil([Затраты],4) |
| Floor(число) | Округляет число вниз до ближайшего целого | Floor([Затраты]) |
| Floor(число, знаки после запятой) | Округляет число вниз до указанного количество знаков | Floor([Затраты],2) |
| Pow(число, степень) | Возводит число в указанную степень | Pow([Сторона], 2) |
| Sqrt(число) | Вычисляет квадратный корень числа | Sqrt([Площадь]) |
| Abs(число) | Возвращает абсолютное значение числа (модуль) | Abs([Отклонение]) |
| Max(число_1, число_2) | Возвращает наибольшее из двух чисел | Max([Стоимость], [Расценка]) |
| Min(число_1, число_2) | Возвращает наименьшее из двух чисел | Min([Стоимость], [Расценка]) |
Таблица 10. Стратегии округления, используемые функцией «Round»
| Имя | Описание |
|---|---|
| AwayFromZero | Округление до ближайшего числа. Число, находящееся между двумя другими, округляется до ближайшего числа, которое находится далеко от нуля. Пример: 2.5 → 3, -1.5 → -2 |
| ToEven | Округление до ближайшего числа. Число, находящееся между двумя другими, округляется до ближайшего четного числа. Пример: 2.5 → 2, 3.5 → 4 |
| ToNegativeInfinity | Округление вниз (к отрицательной бесконечности). Результат будет меньше или равен точному значению. Пример: 2.8 → 2, -1.2 → -2 |
| ToPositiveInfinity | Округление вверх (к положительной бесконечности). Результат будет больше или равен точному значению. Пример: 2.2 → 3, -1.8 → -1 |
| ToZero | Округление к нулю. Результат будет меньше или равен точному значению. Пример: 2.9 → 2, -1.9 → -1 |
Таблица 11. Строковые выражения
| Функция/операция | Описание | Пример |
|---|---|---|
| «Текст» | Строковая константа | «Без названия» |
| [Атрибут_Строка] | Строковый атрибут | [Название] |
| [Атрибут1] + [Атрибут2] | Сложение строк | [Фамилия] + " " + [Имя] |
| IsNull(строка, значение по умолчанию) | Возвращает значение по умолчанию, если значение пустое | IsNull([Комментарий]) |
| Trim(строка) | Удаляет пробелы в начале и конце строки | Trim([Название]) |
| Lower(строка) | Преобразует строку к нижнему регистру | Lower([Название]) |
| Upper(строка) | Преобразует строку к верхнему регистру | Upper([Название]) |
| ToString(число) | Преобразует число в строку | ToString([Стоимость]) |
| ToString(число, формат) | Преобразует число в строку с указанным форматом | ToString([Дата окончания], "YYYY-MM-DD") |
| ToString(дата) | Преобразует дату в строку | ToString([Дата окончания]) |
| ToString(дата, формат) | Преобразует дату в строку с указанным форматом ("dd.MM.yyyy", "dd/MM/yyyy", "yyyy-MM-dd", "MM/dd/yyyy") | ToString([Дата окончания], "yyyy-MM-dd") |
Таблица 12. Дата – выражения
| Функция/операция | Описание | Пример |
|---|---|---|
| [Атрибут_Дата] | Атрибут даты | [Дата начала] |
| Now() | Возвращает текущую дату и время | Now() |
| DateAdd(дата, число) | Прибавляет указанное количество дней к дате | DateAdd([Дата начала], 5) |
| DateAdd(дата, число, ед. измерения) | Прибавляет временной интервал к дате (минуты - "m", "minute"/ часы - "h", "hour"/ дни - "d", "day") | DateAdd([Дата начала], 5, hour) |
| DateDiff(дата_1, дата_2) | Вычисляет разницу между двумя датами в днях | DateDiff([Дата окончания], Now()) |
| DateDiff(дата_1, дата_2, ед. измерения) | Вычисляет разницу между датами в указанных единицах (минуты - "m", "minute"/ часы - "h", "hour"/ дни - "d", "day") | DateDiff([Дата окончания], Now(),day) |
| Max(дата_1, дата_2) | Возвращает более позднюю из двух дат | Max([Дата окончания], Now()) |
| Min(дата_1, дата_2) | Возвращает более раннюю из двух дат | Min([Дата окончания], Now()) |
Таблица 13. Логические выражения
| Функция/операция | Описание | Пример |
|---|---|---|
| Not (дата) | Инвертирует логическое значение | Not([Логический атрибут]) |
| Contains (строка_1, строка_2, чувствительность к регистру) | Проверяет, содержит ли строка указанную подстроку в соответствии с указанными значениями чувствительности к регистру ("true", "false") | Contains([Наименование работы], [Бетон], "false") |
| Compare (логическое_1, логическое_2, оператор) | Сравнивает два логических значения в соответствии с указанным оператором сравнения ("=", "!=") | Compare([Логический атрибут_1], [Логический атрибут_2] true, "=") |
| Compare (строка_1, строка_2, оператор, чувствительность к регистру) | Сравнивает две строки в соответствии с указанным оператором сравнения ("=", "!=") и значением чувствительности к регистру ("true", "false") | Compare([Корпус], [Блок А], "=", "false") |
| Compare (число_1, число_2, оператор, отклонение) | Сравнивает два числа в соответствии с указанным оператором сравнения ("=", "!=", "<", "<=", ">", ">=") и допустимым отклонением от сравниваемого значения (сравниваемое значение +/- значение отклонения) | Compare([Прогресс], [% выполнения], "<", 0.5) |
| Compare (дата_1, дата_2, оператор, ед. измерения) | Сравнивает две даты в соответствии с указанным оператором сравнения ("=", "!=", "<", "<=", ">", ">=") и единицами измерения (сравнение по: минутам - "minute", часам - "hour", дням - "day", месяцам - "month", годам - "year") | Compare([Финиш], [Целевой финиш], ">", "day") |
Таблица 14. Общие выражения
| Функция/операция | Описание | Пример |
|---|---|---|
| Prev(атрибут/ текущий атрибут) | Рассчитывает выражение на основании данных предыдущей строки | Prev([Прогресс]) |