Функции принимают в качестве параметров значения типа дата-время и целочисленные значения, а также измерения, которые могут быть приведены к типу дата-время или целому числу.

Вы можете работать со значениями даты и времени при сочетании функций времени и даты со специальной функцией $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