Функции
В словаре данных представлена отдельная категория Функции (Functions). В этой категории представлены элементы, при помощи которых можно рассчитать определенный результат или вернуть необходимое значение. Все элементы категории Функции разделены по группам. Кроме этого, в дизайнере отчетов присутствует возможность создания пользовательских функций.
В таблице представлен перечень функций, их описание и краткие примеры.
Информация |
Обратите внимание, при обработке числовых значений в отчетах, тип данных результата зависит от типа данных аргументов. В дашбордах же, все аргументы приводятся к максимальному возможному типу. Как правило, это double или decimal. Соответственно, результат вычисления функции, в большинстве случаев, будет также иметь тип данных decimal или double.
|
Функция |
Описание |
Пример |
Date: |
||
Вычисляет интервал между указанными датами. |
{DateDiff(DateSerial(2022,1,30),DateSerial(2022,1,1))} - результат, в этом случае, будет 29.00:00:00, т.е. 29 дней. |
|
Предоставляет возможность указать дату. |
{DateSerial(2022,1,30)} - в этом случае, результат будет 1/30/2022 12:00:00 АМ |
|
Предоставляет возможность отобразить день из указанной даты. |
{Day(DateSerial(2022,1,30))} - в этом случае, результат будет 30, т.к. в аргументах указано тридцатое января 2022 года. |
|
{DayOfWeek()} |
Предоставляет возможность отобразить день недели из указанной даты в текстовом виде. Дата (тип DateTime) |
{DayOfWeek(DateSerial(2022,1,30))} - в этом случае, результат будет sunday. |
Предоставляет возможность отобразить день года |
{DayOfYear(DateSerial(2022,2,14))} - в этом случае, результат будет 45, т.к. 14 февраля это 45-ый день года. |
|
Предоставляет возможность отобразить количество дней в месяце: |
{DaysInMonth(DateSerial(2024,2,1))} - в этом случае, результат будет 29, т.к. 2024 год является високосным и в феврале 29 дней. |
|
Предоставляет возможность отобразить количество дней в году: |
{DaysInYear(2024)} - в этом случае, результат будет 366 дней, поскольку 2024 год является високосным годом. |
|
Предоставляет возможность отобразить час из времени: |
{Hour(DataSource.Column)} - в этом случае, из каждого значения будет отображен час. Например, если время 16:22:36, то результатом будет 16. |
|
Предоставляет возможность отобразить минуты из времени: |
{Minute(DataSource.Column)} - в этом случае, из каждого значения будут отображены минуты. Например, если время 16:22:36, то результатом будет 22. |
|
Предоставляет возможность отобразить месяц из даты: |
{Month(DateSerial(2022,12,1))} - в этом случае, результатом будет 12, поскольку установлена дата первое декабря 2016. |
|
Предоставляет возможность отобразить название месяца из указанной даты Значение true or false (тип bool), для отображения результата с заглавной буквы или со строчной. |
{MonthName(DateSerial(2022,1,1))} - в этом случае, результатом будет January, поскольку установлена дата первое января 2022 года. |
|
Предоставляет возможность отобразить секунды из времени: |
{Second(DataSource.Column)} - в этом случае, из каждого значения будут отображены секунды. Например, если время 16:22:36, то результатом будет 36. |
|
Предоставляет возможность отобразить время: В аргументах указываются часы, минуты, секунды (тип long) |
{TimeSerial(1,14,20)} - в этом случае, результат будет 01:14: 20, т.е. один час, 14 минут, 20 секунд. |
|
Предоставляет возможность отобразить год: В аргументах указывается дата (тип DateTime) |
{Year(DateSerial(2022,1,2))} - в этом случае, результатом будет 2022, поскольку указана дата второе января 2022 года. |
|
Math: |
||
Предоставляет возможность возратить абсолютно число. |
{Abs(-42)} - в этом случае, результат будет 42 |
|
Предоставляет возможность отобразить угол в радианах. |
{Acos(-1)} - в этом случае, будет вычислен угол в радианх для значения cos = -1, т.е. угл будет равен ~ 3.14. |
|
Предоставляет возможность отобразить угол в радианах. |
{Asin(0)} - в этом случае, будет вычислен угол в радианх для значения sin = 0, т.е. угл будет равен 0. |
|
Предоставляет возможность отобразить угол в радианах. |
{Atan(-1)} - в этом случае, будет вычислен угол в радианх для значения tan = -1, т.е. угл будет равен ~ -0.79 |
|
Предоставляет возможность отобразить максимальное целочисленное значение к указанному числу В аргументах указывается значение (тип double, decimal) |
{Ceiling(25.124)} - в этом случае, результат будет 26. Стоит отметить, что при применении данной функции не происходит округление числа. |
|
Предоставляет возможность вычислить и отобразить значение cos: В аргументах указывается значение угла в радианах (тип double) |
{Cos(0)} - в этом случае, результат будет 1. |
|
Предоставляет возможность отобразить результат деления одного аргумента на другой: Делимое, делитель и значение, которое будет результатом, если делитель равен 0.
Возвращает значение типа double, decimal, long |
{Div(2,1)} - в этом случае, результат будет 2, т.к. 2 / 1 = 2 |
|
Предоставляет возможность отобразить результат возведения в указанную степень числа e: В аргументах указывается степень, в которую необходимо возвести число e (тип long) |
{Exp(4)} - в этом случае, число е будет возведено в 4-ую степень. |
|
Предоставляет возможность отобразить минимальное целочисленное значение к указанному числу В аргументах указывается значение (тип double, decimal) |
{Floor(123.59)} - в этом случае, результат будет 123, т.к. это ближайшее минимальное целое число. Стоит отметить, что данная функция не производит округление. |
|
Предоставляет возможность вычислить натуральный логарифм: В аргументах указывается значение (тип double) |
{Log(x)}, где х - это число или выражение, результатом будет вычислеение натурального логарифма. |
|
Предоставляет возможность сравнить два значения и отобразить максимальное: В аргументах указывается два значения (тип long, decimal, double) |
{Maximum(5,9)} - в этом случае, результатом будет число 9.
|
|
Предоставляет возможность сравнить два значения и отобразить минимальное: В аргументах указывается два значения (тип long, decimal, double) |
{Minimum(5,9)} - в этом случае, результатом будет число 5. |
|
Предоставляет возможность округлить значение до целого числа или до определенного количества знаков дробной части: В аргументах указывается: Число знаков, до которого следует округлить дробную часть (тип int) |
{Round(7.56)} - в этом случае, результат будет 8 |
|
Предоставляет возможность отобразить индикатор со знаком числа. Для положительных чисел 1, 0 - для всех нулевых значений, -1 - для отрицательных значений: В аргументах указывается значение (тип long, decimal, double). |
{Sign(256)} - в этом случае, результат будет 1. |
|
Предоставляет возможность вычислить sin угла: В аргументах указывается значение угла в радианах (тип double). |
{Sin(0)} - в этом случае, результат будет 0. |
|
Предоставляет возможность вычислить квадратный корень из числа: |
{Sqrt(4)} - в этом случае, результат будет 2, т.к. квадратный корень из 4 равен 2. |
|
Предоставляет возможность вычислить tg угла: В аргументах указывается значение угла в радианах (тип double). |
{Tan(90)} - в этом случае, результат будет ~ -1.995 |
|
Предоставляет возможность отобразить только целую часть без округления: |
{Truncate(Sqrt(5))} - в этом случае, результат будет число 2, т.к. квадратный корень из 5 равен ~ 2.236, т.е. целая часть в этом числе и есть 2. {Truncate(DataSource.Column1)} - в этом случае, будет отображена только целая часть от всех значений Column1. |
|
Print State: |
||
Предоставляет возможность выявить значения null в указанной колонке данных. Если будет присутствовать значение null, то результат будет true, иначе - false. В аргументах указывается: |
{IsNull(DataSource.Column)} - в этом случае, в построенном отчете, вместо значений null будет отображаться значение true, а вместо других значений - false. |
|
Предоставляет возможность отобразить значение из следующей строки. Если значения следующей строки null, то результатом будет 0. В аргументах указывается источник данных (тип object) и имя колонки данных (тип string). |
Например, колонка данных Column содержит значения 2, 5, 9. Тогда используя функцию {Next(DataSource,"Column")}, в результате первое значение будет 5, второе 9, третье - null. |
|
Предоставляет возможность сравнить значение строки со значением следующей строки. Если значение следующей строки будет 0 или null, то результат будет true, иначе - false. В аргументах указывается: Источник данных (тип object) |
Например, колонка данных Column содержит значения 2, 0, 9. Тогда используя функцию {NextIsNull(DataSource,"Column")}, в результате первое значение будет true, второе - false, третье - true. |
|
Предоставляет возможность отобразить значение из предыдущей строки. Если значения следующей строки null, то результатом будет 0. В аргументах указывается источник данных (тип object) и имя колонки данных (тип string). |
Например, колонка данных Column содержит значения 2, 5, 9. Тогда используя функцию {Previous(DataSource,"Column")}, в результате первое значение будет null, второе 2, третье - 5. |
|
Предоставляет возможность сравнить значение строки со значением предыдущей строки. Если значение предыдущей строки будет 0 или null, то результат будет true, иначе - false. В аргументах указывается: |
Например, колонка данных Column содержит значения 2, 9, 0. Тогда используя функцию {PreviousIsNull(DataSource,"Column")}, в результате первое значение будет true, второе - false, третье - false. |
|
Programming Shortcut: |
||
Предоставляет возможность отобразить значение по индексу. В аргументах указывается индекс и значения. |
Все группы товаров сгруппированы по категориям: дорогие товары, товары средней цены, дешевые товары. Каждой группе присвоен индекс: дорогие - индекс 1, средние - индекс 2, дешевые - индекс 3 . В отчете следует отобразить вместо их индекса - категорию. В этом случае, можно воспользоваться функцией Choose.
{Choose(DataSource.Column1, "expensive", "average", "cheap")} - вместо индекса 1 будет отображаться значение expensive, вместо индекса 2 - average, вместо индекса 3 - cheap. |
|
Предоставляет возможность использовать отобразить то или иное значение, в зависимости от условия: В аргументах указывается условие, значение если условие выполнилось (true) и значение если условие не выполнилось (false) |
В отчете со складскими запасами необходимо отслеживать количество товаров. Задача логиста состоит в том, что когда количество товаров приближается к нулю (меньше 6), необходимо произвести заказ этих товаров. Для того чтобы выделять критические позиции в отчете визуально можно воспользоваться функцией {IIF(,,)}
{IIF(DataSource.Column1 > 6,"Minimum","Normal")}, |
|
Предоставляет возможность присвоить заданное значение при выполнении определенного условия: |
Например, в отчете отображается список сотрудников, и необходимо отобразить их должность: Nancy - ведущий менеджер проекта, Andrew - главный разработчик, остальные сотрудники (их 6 человек) - Junior. В этом случае, функция Switch будет иметь три пары аргументов "условие-значение": |
|
Strings: |
||
Предоставляет возможность конвертировать указанные цифры в цифры на арабском: |
{Arabic(2)} - в этом случае, цифра 2 будет иметь арабское написание. |
|
Предоставляет возможность сконвертировать дату в текстовое значение: |
{DateToStr(DataSource.Column1)} - в этом случае, все даты из Column1 будут отображаться в текстовом виде. |
|
Предоставляет возможность вставить значение после определенногое символа в другое значение: В аргументах указывается: номер символа, после которого будет вставлено значение (тип int), значение для вставки (тип string) |
{Insert("25",2," dollars")} - в этом случае, в значение 25, после второго символа будет вставлено значение dollars, т.е. результат будет 25 dollars. |
|
Предоставляет возможность отобразить указанное количество символов от левой стороны значения: |
{Left("Beverages", 4)} - в этом случае, будет отображено только четыре символа из значения Beverages, т.е. результат будет Beve. |
|
Предоставляет возможность отобразить количество символов для указанного значения: В аргументах указывается значение (тип string) |
{Length("Beverages")} - в этом случае, результат будет число 9, т.к. значение Beverages состоит из девяти символов. |
|
Предоставляет возможность отобразить символы из значения. При этом можно задать позицию отсчета: Индекс позиции отсчета (тип int) Количество символов, которое необходимо отобразить (тип int) |
{Mid("Beverages",2,3)} - в этом случае, будет отображено три символа, после первых двух, т.е. результат будет ver. |
|
Предоставляет возможность конвертировать указанные цифры в цифры на персидском: |
{Persian(5)} - в этом случае, цифра 2 будет иметь персидское написание. |
|
Предоставляет возможность удалить указанное количество символов с индекса определенной позиции: Индекс позиции отсчета (тип int) Количество символов, которое необходимо удалить (тип int) |
{Remove("Beverages",2,3)} - в этом случае, после второго символа будет удалено три символа, т.е. результат будет Beages. |
|
Предоставляет возможность заменить определенные символы или их сочетание на другие символы: Символы, которые необходимо заменить (тип string) Символы, которые необходимо вставить (тип string) |
{Replace("Beverages","ver","NEW")} - в этом случае, в значении Beverages, символы ver будут заменены на символы NEW, т.е. результат будет BeNEWages |
|
Предоставляет возможность отобразить указанное количество символов от правой стороны значения: |
{Right("Beverages",3)} - в этом случае, будет отображено три символа от правой стороны значения. т.е. ges. |
|
Предоставляет возможность сконвертировать арабские цифры в римские: |
{Roman(4)} - в этом случае, цифра 4 будет иметь римское написание. |
|
Предоставляет возможность отобразить определенное число символов с указанной позиции: Индекс позиции (тип int), т.е. сколько символов пропускается Количество символов, которые необходимо отобразить (тип int) |
{Substring("Beverages",6,3)} - в этом случае, первые шесть символов пропускаются и будет отображаться три символа, т.е. результат будет ges. |
|
Предоставляет возможность отобразить валютную стоимость текстом. Аргумент (true or false) определяет отображение текста с заглавной или строчной буквы; Аргумент (true or false) определяет отображения центов; Аргумент, который предоставляет возможность определить формат единственного и множественного числа для валюты и центов (тип string); Аргумент, который предоставляет возможность определить базовую единицу измерения для целой и дробной части.
Кроме этого, возможно различные комбинации аргументов. Также есть виды этой функции, поддерживающие различные культуры. Обратите внимание, также есть возможность указать ISO код (тип string) валюты. |
{ToCurrencyWords(100)} - по умолчанию, используется валюта dollars of USA, поэтому результат вычисления функции будет: "One hundred dollars and zero cents". {ToCurrencyWords(100, false)} - в этом случае, стоимость будет указана без центов, поскольку параметр отображения центов установлен в значение false. Результат вычисления функции будет: "One hundred dollars".
{ToCurrencyWords(100, false, true)} - в этом случае, стоимость будет указана с центами, но текст будет отображаться со строчной буквы. Поскольку параметр отображения центов установлен в значение true (третий аргумент функции), а параметр отображения с заглавной буквы установлен в значение false (второй аргумент функции). Результат вычисления функции будет: "one hundred dollars and zero cents".
{ToCurrencyWords(125.9,true,true,"currency","cent name")} - в этом случае, стоимость будет указана с центами и текст будет отображаться с заглавной буквы. Поскольку третий и второй аргумент переданы как значение true соответственно. Также, в этом примере мы определили базовую единицу для целой части как "currency", и базовую единицу для дробной как "cent name". Результат вычисления функции будет: "One hundred and twenty-five currency and ninety cent name".
{ToCurrencyWordsEnIn("dollars","cents",1.25M,0,true)} - в этом случается, указана базовая единица для целой части как dollars, для дробной части - cents, число для конвертации 1.25, затем указано колчество знаков после запятой, которое необходимо конвертировать и значение true ознаечает, что текст будет с заглавной буквы. |
|
Предоставляет возможность отобразить значение в нижнем регистре: |
{ToLowerCase("EURO")} - в этом случае, результат будет euro. |
|
Предоставляет возможность преобразовать число в порядковое числительное: |
{ToOrdinal(25)} - - в этом случае, результат будет 25th. |
|
Предоставляет возможность преобразовать текст в формат первый символ заглавный, остальные в нижнем регистре: |
{ToProperCase("dOllars")} - - в этом случае, результат будет Dollars. |
|
Предоставляет возможность отобразить значение в верхнем регистре: |
{ToUpperCase("dollars")} - в этом случае, результат будет DOLLARS. |
|
Предоставляет возможность отобразить число текстом: Числовое значение, которое будет преобразовано в текст (decimal, double, long) |
{ToWords(100)} - в этом случае, результат будет one hundred. |
|
Предоставляет возможность обрезать пробелы в начале или конце строки: |
{Trim(" <1 dollars> ")} - в этом случае результат в этом случае будет "<1 dollars>". |
|
Предоставляют возможность проверить значение для конвертации в тип decimal, double,long : |
{TryParseLong("100")} - в этом случаерезультат будет true, т.е. значение можно будет сконвертировать в long. |