Функции и расчет итогов
<< Click to Display Table of Contents >> Navigation: Создание отчетов > Источники данных, переменные и функции > Функции и расчет итогов |
В словаре данных представлена отдельная категория Функции. В этой категории представлены элементы, при помощи которых можно рассчитать определенный результат или вернуть необходимое значение. Все элементы категории Функции разделены по группам:
В таблице ниже представлен перечень функций, их описание и краткие примеры.
Функция |
Описание |
Пример |
Date: |
||
Вычисляет интервал между указанными датами. |
{DateDiff(DateSerial(2016,1,30),DateSerial(2016,1,1))} - результат, в этом случае, будет 29.00:00:00, т.е. 29 дней. |
|
Предоставляет возможность указать дату. |
{DateSerial(2016,1,30)} - в этом случае, результат будет 1/30/2016 12:00:00 АМ |
|
Предоставляет возможность отобразить день из указанной даты. |
{Day(DateSerial(2016,1,30))} - в этом случае, результат будет 30, т.к. в аргументах указано тридцатое января 2016 года. |
|
Предоставляет возможность отобразить день недели из указанной даты в текстовом виде. Дата (тип DateTime) |
{DayOfWeek(DateSerial(2016,1,30))} - в этом случае, результат будет saturday. |
|
Предоставляет возможность отобразить день года |
{DayOfYear(DateSerial(2016,2,14))} - в этом случае, результат будет 45, т.к. 14 февраля это 45-ый день года. |
|
Предоставляет возможность отобразить количество дней в месяце: |
{DaysInMonth(DateSerial(2016,2,1))} - в этом случае, результат будет 29, т.к. 2016 год является високосным и в феврале 29 дней. |
|
Предоставляет возможность отобразить количество дней в году: |
{DaysInYear(2016)} - в этом случае, результат будет 366 дней, поскольку 2016 год является високосным годом. |
|
Предоставляет возможность отобразить час из времени: |
{Hour(DataSource.Column)} - в этом случае, из каждого значения будет отображен час. Например, если время 16:22:36, то результатом будет 16. |
|
Предоставляет возможность отобразить минуты из времени: |
{Minute(DataSource.Column)} - в этом случае, из каждого значения будут отображены минуты. Например, если время 16:22:36, то результатом будет 22. |
|
Предоставляет возможность отобразить месяц из даты: |
{Month(DateSerial(2016,12,1))} - в этом случае, результатом будет 12, поскольку установлена дата первое декабря 2016. |
|
Предоставляет возможность отобразить название месяца из указанной даты Значение true or false (тип bool), для отображения результата с заглавной буквы или со строчной. |
{MonthName(DateSerial(2016,1,1))} - в этом случае, результатом будет January, поскольку установлена дата первое января 2016 года. |
|
Предоставляет возможность отобразить секунды из времени: |
{Second(DataSource.Column)} - в этом случае, из каждого значения будут отображены секунды. Например, если время 16:22:36, то результатом будет 36. |
|
Предоставляет возможность отобразить время: В аргументах указываются часы, минуты, секунды (тип long) |
{TimeSerial(1,14,20)} - в этом случае, результат будет 01:14: 20, т.е. один час, 14 минут, 20 секунд. |
|
Предоставляет возможность отобразить год: В аргументах указывается дата (тип DateTime) |
{Year(DateSerial(2016,1,2))} - в этом случае, результатом будет 2016, поскольку указана дата второе января 2016 года. |
|
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. В аргументах указывается: |
{Next(DataSource.Column)} - в этом случае, в построенном отчете, вместо значений null будет отображаться значение true, а вместо других значений - false. |
|
Предоставляет возможность отобразить значение из следующей строки. Если значения следующей строки null, то результатом будет 0. В аргументах указывается источник данных (тип object) и имя колонки данных (тип string). |
Например, колонка данных Column содержит значения 2, 5, 9. Тогда используя функцию {Next(DataSource,"Column")}, в результате первое значение будет 5, второе 9, третье - пусто. |
|
Предоставляет возможность сравнить значение строки со значением следующей строки. Если значение следующей строки будет 0 или null, то результат будет true, иначе - false. В аргументах указывается: Источник данных (тип object) |
Например, колонка данных Column содержит значения 2, 0, 9. Тогда используя функцию {NextIsNull(DataSource,"Column")}, в результате первое значение будет true, второе - false, третье - true. |
|
Предоставляет возможность отобразить значение из предыдущей строки. Если значения следующей строки null, то результатом будет 0. В аргументах указывается: Источник данных (тип object) |
Например, колонка данных Column содержит значения 2, 5, 9. Тогда используя функцию {Previous(DataSource,"Column")}, в результате первое значение будет пусто, второе 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) для отображения с заглавной буквы и отображения центов (тип bool) Могут указывать форматы единственного числа и множественного для валюты и центов (тип string) Есть возможность указать ISO код (тип string) Также можно указать базовую единицу измерения для целой части и дробной
Кроме этого, возможно различные комбинации аргументов. Также есть виды этой функции, поддерживающие различные культуры. |
{ToCurrencyWords(100)} - по умолчанию, используемая валюта dollars of USA, поэтому результат будет One hundred dollars and zero cents. {ToCurrencyWords(Products.UnitPrice)} - в этом случае, все цены продуктов будут отображаться текстом. {ToCurrencyWords(100,true,false)} - в этом случае, результат будет отображаться с заглавным первым символом (посколько установлено в значение true) и без отображения центов (поскольку, установлен значение false), т.е. результат будет One hundred dollars.
{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. |
|