Одной из основных задач при построении отчетов является задача группировки выводимых данных. Группировка может применяться, как для логического разделения строк с данными на странице, так и для визуального улучшения вида отчета.
Для построения отчетов с группировкой применяется два блока – Заголовок группы и Итог группы.
Блок Заголовок Группы выводится в начале каждой группы, блок Итог группы выводится в конце каждой группы.
Для группировки данных по Колонке данных, в заголовок группы добавляется компонент Текст (Text), а из Словаря перетягивается нужный пункт.
Группировка данных по Колонке данных
Для группировки данных по графе Выражение, в заголовок группы добавляется запись вида {Data_1.Question_0}.
Группировка данных по графе Выражение
Настройки группировки данных определяются в редакторе блока Заголовок группы. Для того чтобы вызвать редактор блока Заголовок данных, необходимо:
Дважды кликнуть левой кнопкой мыши по блоку Заголовок данных;
В контекстном меню блока Заголовок данных выбрать Колонка данных;
Из списка слева выбрать вопрос, по которому задается Условие группировки.
Если нужно, можно также выбрать Направление сортировки.
Редактор отчета
Просмотр отчета с применением группировки данных
ОСНОВНЫЕ ФУНКЦИИ
В словаре данных представлена отдельная категория Функции. В этой категории представлены элементы, при помощи которых можно рассчитать определенный результат или вернуть необходимое значение. Все элементы категории Функции разделены по группам.
В таблице представлен перечень основных функций, их описание и краткие примеры.
Date
Функция
Описание
Пример
{DateDiff(,)}
Вычисляет интервал между указанными датами
Аргументы должны быть типа DateTime
Возвращает значение TimeSpan
{DateDiff(DateSerial(2022,1,30),DateSerial(2022,1,1))} - результат, в этом случае, будет 29.00:00:00, т.е. 29 дней.
{DateDiff(DataSource.Column1,DataSource.Column2)} - в этом случае, результат будет вычислен для каждого значения в Column1
{DateSerial(,,)}
Предоставляет возможность указать дату
В аргументах указывается год, месяц, день
Возвращает значение DateTime
{DateSerial(2022,1,30)} - в этом случае, результат будет 1/30/2022 12:00:00 АМ
Функция возвращает значение DateTime, однако если необходимо отображение только даты, то следует применить к текстовому компоненту форматирование текста.
{Day()}
Предоставляет возможность отобразить день из указанной даты
Аргументы должны быть типа DateTime
Возвращает значение long
{Day(DateSerial(2022,1,30))} - в этом случае, результат будет 30, т.к. в аргументах указано тридцатое января 2022 года
{Day(DataSource.Column)} - в этом случае, результат будет рассчитан для каждого значения Column
{DayOfWeek()}
Предоставляет возможность отобразить день недели из указанной даты в текстовом виде
В аргументах указывается:
Дата (тип DateTime)
Культура (тип string).
Значение true or false (тип bool), для отображения результата с заглавной буквы или со строчной.
Значение true or false (тип bool), в зависимости от которого будет использоваться системная культура или локализация дизайнера
Возвращает значение string
{DayOfWeek(DateSerial(2022,1,30))} - в этом случае, результат будет sunday
{DayOfWeek(DataSource.Column)} - в этом случае, для каждого значения будет рассчитан день недели
{DayOfWeek(DateSerial(2022,1,30),"de")} - в этом случае, результат будет samstag, потому как установлена культура de
{DayOfWeek(DataSource.Column,"de")} - в этом случае, все результаты будут соответствовать на культуре de
{DayOfWeek(DateSerial(2022,1,30),"en", false)} - в этом случе, день недели будет со строчной буквы, т.е. sunday
{DayOfWeek(DataSource.Column,"de", true)} - в этом случе, дни недели будут с заглавной буквы, т.е. например Samstag
{DayOfWeek(DateSerial(2022,1,30), false)} - в этом случе, день недели будет отображен на культуре, которая используется системой
{DayOfWeek(DataSource.Column, true)} - в этом случе, день недели будет отображен на культуре, которая используется в дизайнере отчетов
{MonthName()}
Предоставляет возможность отобразить название месяца из указанной даты
В аргументах указывается:
Дата (тип DateTime) и культура (тип string)
Культура (тип string)
Значение true or false (тип bool), для отображения результата с заглавной буквы или со строчной.
Значение true or false (тип bool), в зависимости от которого будет использоваться системная культура или локализация дизайнера
Возвращает значение string
{MonthName(DateSerial(2022,1,1))} - в этом случае, результатом будет January, поскольку установлена дата первое января 2022 года.
{MonthName(DataSource.Column)} - в этом случае, результатом будет название месяца для каждого значения Column
{MonthName(DateSerial(2022,2,1),"de")} - в этом случае, результат будет соответствовать культуре de, т.е. Februar.
{MonthName(DataSource.Column,"en")} - в этом случае, все названия месяцев будут соответствовать культуре en.
{MonthName(DateSerial(2022,1,1), false)} - в этом случае, название месяца будет со строчной буквы.
{{MonthName(DataSource.Column, true)} - в этом случае, название месяцев будет с заглавной буквы.
{MonthName(DateSerial(2022,1,1), false)} - в этом случае, название месяца будет соответствовать культуре, которая используется системой.
{MonthName(DataSource.Column, true)} - в этом случае, названия месяцев будут соответствовать культуре, которая соответствует культуре дизайнера отчетов.
{Year()}
Предоставляет возможность отобразить год
В аргументах указывается:
Дата (тип DateTime)
Возвращает значение long
{Year(DateSerial(2022,1,2))} - в этом случае, результатом будет 2022, поскольку указана дата второе января 2022 года.
{Year(DataSource.Column)} - в этом случае, будут отображены года из каждого значения Column.
Math
Функция
Описание
Пример
{Abs()}
Предоставляет возможность возвратить абсолютно число.
В аргументах указывается число (тип double,decimal,long)
Возвращает соотвественно значение типа double,decimal,long
{Abs(-42)} - в этом случае, результат будет 42
{Abs(DataSource.Column1)} - в этом случае, результатами будут абсолютные числа из значений Column1, т.е. без учет знака числа.
{Div()}
Предоставляет возможность отобразить результат деления одного аргумента на другой:
В аргументах указывается:
Делимое и делитель (тип double, decimal, long).
Делимое, делитель и значение, которое будет результатом, если делитель равен 0
Возвращает значение типа double, decimal, long
{Div(2,1)} - в этом случае, результат будет 2, т.к. 2 / 1 = 2
{Div(2,0,4)} - в этом случае, результат будет 4, т.к. делитель равен 0 и отображаться будет третий аргумент.
{Div(DataSource.Column1,DataSource.Column2,DataSource.Column3)} - в этом случае, отображаться будет результат деления значений
Column1 на значения Column2. При этом, если Column2 содержит нулевые значения, то вместо результата деления, в данной строке будут отображаться значения из Column3.
{Exp()}
Предоставляет возможность отобразить результат возведения в указанную степень числа e:
В аргументах указывается:
В аргументах указывается степень, в которую необходимо возвести число e (тип long)
Возвращает значение типа double
{Exp(4)} - в этом случае, число е будет возведено в 4-ую степень.
{Exp(DataSource.Column1)} - в этом случае, каждое значение из Column1 будет представлять собой степень, в которую будет возводиться число е.
{Log()}
Предоставляет возможность вычислить натуральный логарифм:
В аргументах указывается значение (тип double)
Возвращает значение типа double
{Log(x)}, где х - это число или выражение, результатом будет вычислеение натурального логарифма.
{Maximum(,)}
Предоставляет возможность сравнить два значения и отобразить максимальное:
В аргументах указывается два значения (тип long, decimal, double)
Возвращает значение типа long, decimal, double
{Maximum(5,9)} - в этом случае, результатом будет число 9.
{Maximum(DataSource.Column1,DataSource.Column2)} - в этом случае, все значения Column1 сравняться со значениями Column2. В отчете будут отображены максимальные числа.
{Minimum(,)}
Предоставляет возможность сравнить два значения и отобразить минимальное:
В аргументах указывается два значения (тип long, decimal, double)
Возвращает значение типа long, decimal, double
{Minimum(5,9)} - в этом случае, результатом будет число 5.
{Minimum(DataSource.Column1,DataSource.Column2)} - в этом случае, все значения Column1 сравняться со значениями Column2. В отчете будут отображены минимальные числа.
{Sqrt()}
Предоставляет возможность вычислить квадратный корень из числа:
В аргументах указывается число (тип double).
Возвращает значение типа double
{Sqrt(4)} - в этом случае, результат будет 2, т.к. квадратный корень из 4 равен 2.
{Sqrt(DataSource.Column1)} - в этом случае, для всех значений Column1 будет вычислен квадратный корень.