Функции принимают в качестве параметров значения типа дата-время и целочисленные значения, а также измерения, которые могут быть приведены к типу дата-время или целому числу.
Вы можете работать со значениями даты и времени при сочетании функций времени и даты со специальной функцией $dimval. Их можно сделать отдельными фактами или использовать в Ваших формулах.
Функция | Описание | Примеры |
Date(Год [, Месяц [, День]]) | Создает дату. По умолчанию месяц и день равны 1. | Date(2004) = 01.01.2004 Date(2004, 5) = 01.05.2004 Date(2004, 5, 10) = 10.05.2004 |
DateTime(Год [, Месяц [, День]]) | Создает дату и время. По умолчанию месяц и день равны 1. | DateTime(2004) = 01.01.2004 00:00:00.000 DateTime(2004, 5) = 01.05.2004 00:00:00.000 DateTime(2004, 5, 10, 19, 35, 54, 357) = 10.05.2004 19:35:54.357 Date(2004, 5, 10)+Time(19, 35, 54, 357) = 10.05.2004 19:35:54.357 |
DateSubst(Дата, [Год [, Месяц [, День]]) | Заменяет фракцию даты. 0 - не заменять фракцию даты. | (в datefield содержится 15.05.2005) = 15.05.2004 DateSubst(datefield,2004) = 15.05.2004 DateSubst(datefield,0,0,25) = 25.05.2005 |
Time(Часы [, Минуты [, Секунды [, Миллисекунды]]]) | Создает время. Допустимые значения: Часы - 0-23, минуты - 0-59, секунды 0-59, миллисекунды - 0-999. | Time(19, 35, 54, 357) = 19:35:54.357 |
TimeSpan(Часы [, Минуты, [Секунды, [ Миллисекунды]]]) | Создает интервал. Допустимые значения: Часы - 0-23, минуты - 0-59, секунды 0-59, милисекунды - 0-999. | TimeSpan(25, 150, 630) = одни сутки 3 часа 40 минут 30 секунд дата - дата = интервал дата - интервал = дата дата + интервал = дата интервал + интервал = интервал интервал - интервал = интервал интервал * число = интервал интервал / число = интервал интервал / интервал = число интервал * интервал = не имеет смысла |
Year(Дата) | Возвращает номер года. | Year(10.05.2004) = 2004 |
Month(Месяц) | Возвращает номер месяца. | Month(10.05.2004) = 5 |
Day(Дата) | Возвращает день. | Day(10.05.2004) = 10 |
Quarter(Дата) | Возвращает номер квартала. | Quarter(10.05.2004) = 2 |
TenDayPeriod(Дата) | Возвращает декаду месяца - число от 1 до 3. | TenDayPeriod(10.05.2004) = 1 |
StartOfTenDayPeriod(Дата) | Возвращает дату - начало декады. | StartOfTenDayPeriod(10.05.2004) = 01.05.2004 |
DayOfYear(Дата) | Возвращает номер дня года - число от 1 до 366. | DayOfYear(10.05.2004) = 131 |
Weekday(Дата) | Возвращает день недели - число от 1 до 7. | WeekDay(10.05.2004,#WeekdayISO) = 1 (понедельник) |
Days(Дата1, Дата2). | Возвращает количество дней между date1 и date2. Эквивалентно DayOfYear() - DayOfYear(). | Days(10.05.2004,01.05.2004) = 9 |
DaysInYear(Дата) | Возвращает количество дней в году. | DaysInYear(10.05.2004) = 366 |
IsLeapYear(Дата) | Возвращает 1, если год високосный, и 0 - в противном случае. | IsLeapYear(10.05.2004) = 1 |
DaysInMonth(Дата) | Возвращает количество дней в месяце. | DaysInMonth(10.05.2004) = 31 |
2.43.5 Измерения
2.43.6 Проценты
Функции вычисляют процентное отношение факта к итогам.
Функция | Описание | Примеры |
PercentsToSubtotal (<факт>) | Процент к промежуточному итогу. | PercentsToSubtotal (Amount) |
PercentsToTotal (<факт>) | Процент к итогу по строке или колонке в зависимости от направления расчетов. | PercentsToTotal (Amount) |
PercentsToGrandtotal (<факт>) | Процент к итогу по таблице. | PercentsToGrandtotal (Amount) |
2.43.7 Арифметические функции
Функция | Описание | Примеры |
sqrt(X) | Квадратный корень. | sqrt(9) = 3 |
X div Y | Целочисленное деление. Деление на ноль обрабатывается и возвращается INF (бесконечность). | 20 div 3 = 6 |
X mod Y | Возвращается остаток от деления. Деление на ноль обрабатывается и возвращается 0. | 20 mod 3 = 2 |
X ^ Y | Возведение в степень. | 10 ^ 4 = 10000 |
X +% Y | Увеличение X на Y процентов от X. | 50 + %10 = 55 |
X -% Y | Уменьшение X на Y процентов от X. | 50 - %10 = 45 |
X *% Y | Возвращает Y процентов от X. | 50 *% 10 = 5 |
X /% Y | Доля X в Y в процентном выражении. | 500 %/ 20 = 2500 200 %/ 500 = 40 |
max(x[, n]) | Максимум. Возвращает наибольшее из чисел. | max(-3, -6.8) = -3 max(3, 2, 4, 1) = 4 |
min(x[, n]) | Минимум. Возвращает наименьшее из чисел. | min(-3, -6.8) = -6.8 min(3, 2, 4, 1) = 1 |
2.43.8 Функции округления
Функция | Описание | Примеры |
ceil(x) | Округляет до целого в большую сторону. | ceil(1.9) = 2 ceil(-1.9) = -1 |
floor(x) | Округляет до целого в меньшую сторону. | floor(1.9) = 1 floor(-1.9) = -2 |
round(x [, n]) | Округление. Округляет X до N знаков после запятой. Если N не задано, округляет до целого. | round(0.5) = 1.0 round(-0.5) = -1.0 round(1.9) = 2 round(1.5) = 2 round(1.535, 2) = 1.54 |
2.43.9 Функции определения знака
Функция | Описание | Примеры |
abs(x) | Модуль. Возвращает абсолютное значение операнда. | abs(2) = 2 abs(-2) = 2 |
sign(x) | Возвращает знак операнда: Если X>0, возвращает 1. Если X<0, возвращает –1. | sign(120) = 1 sign(-120) = -1 |
2.43.10 Свойства измерения
Функции определения свойств измерений.
Функция | Описание | Примеры |
IsIncluded (<измерение>) | 1, если измерение включено в срез (может быть не активным) 0 - в противоположном случае | A = IsIncluded (мое_измерение) |
IsActive (<измерение>) | 1, если измерение включено в срез и активно 0, если измерение неактивно или не включено в срез | B = IsActive (измерение_1) |
IsCurrent (<измерение>) | 1, если заданное измерение является текущим Так, IsCurrent (<$dim>) тождественно равно 1 | C = IsCurrent (некоторое_измерение) |
IsTotal() | Показывает, является ли текущая ячейка итогом. | if(IsTotal(), 0, Foo) == 0, если текущая ячейка не является итогом |
IsSubtotal() | Показывает, является ли текущая ячейка промежуточным итогом | if(IsSubtotal(), 0, Foo) == 0, если текущая ячейка не является промежуточным итогом |
IsGrandtotal() | Показывает, является ли текущая ячейка общим итогом | if(IsGrandtotal(), 0, Foo) == 0, если текущая ячейка не является общим итогом |
IsRoot() | Показывает, является ли текущая ячейка общим итогом, эквивалентно IsGrandtotal(). | if(IsRoot(), 0, Foo) == 0, если текущая ячейка не является общим итогом |
IsLeaf() | Показывает, является ли текущая ячейка 'листом', т. е. находится на уровне атомарных записей куба | if(IsLeaf(), Foo, 0) == 0, если текущая ячейка не является записью куба |
IsSameDim() | Показывает, являются ли переданные функции измерения одним и тем же измерением. В качестве аргументов, как правило, используют функции определения позиций измерений. | IsSameDim($dim, YEAR) вернет 1, если текущее измерение - YEAR, иначе 0. |
2.43.11 Позиции факта
Переменные, применяемые в выражениях вместо фактов. Отражают позицию факта.
Переменная | Тип | Описание | Пример |
$begin | Факт | Позиция первого подузла данного узла в иерархии $begin == $pos@$child | $end - $begin == число детей данного узла |
$end | Факт | Следующая позиция после последнего подузла данного узла | $begin@$dim - $*****@***== число детей данного узла с явным заданием измерения |
$dimlen | Факт | Число узлов на данном иерархическом уровне | $dimlen@$dim[-1] == число узлов на родительском уровне |
$level | Факт | Иерархический уровень данного измерения. Если $level используется вне @-выражения, он возвращает уровень текущего измерения | $level@$parent == $level -1 $level@$child == $level +1 |
$pos | Факт | Позиция текущей ячейки в данном измерении | $dimlen - $pos == позиция текущей ячейки от конца измерения |
$self | Факт | Ссылка на текущий факт. Применяется вместо имени факта. $self == &self[$pos] == $self@$dim == $self[$pos]@dim | if ($pos, $self[$pos -1] + $self, 0) == нарастающий итог для текущего факта |
2.43.12 Позиции измерения
Переменные, применяемые в выражениях вместо измерений. Отражают позицию измерения.
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 |


