Группирование данных в отчете (конструктор отчетов Visual Studio)
Данные во всех областях данных (таблица, матрица и список) могут быть сгруппированы с помощью полей и выражений. Чтобы предоставить логические разделы данных внутри таблицы, можно использовать группы внутри таблицы. Кроме того, к верхнему или нижнему колонтитулу группы можно добавить подытоги и другие выражения. Группы отображаются в матрице в виде динамических столбцов или строк. Группы можно вложить в другие группы и добавить подытоги. Для предоставления отдельных групп в отчете можно использовать списки либо поместить списки внутрь списков для вложенных групп.
Задание свойств групп в областях данных
Области данных — это привязанные к данным элементы отчета, которые используются для отображения повторяющихся строк данных. В любой области данных можно устанавливать свойства групп, чтобы организовать представление данных.
Инструкции по указанию групп таблицы или списка см. в разделах Добавление табличных областей данных (конструктор отчетов Visual Studio) и Добавление областей данных списка (конструктор отчетов Visual Studio).
Чтобы указать группы в матрице, в нее добавляются динамические столбцы или строки. Дополнительные сведения см. в разделе Добавление матричных областей данных (конструктор отчетов Visual Studio).
Рекурсивные иерархии
Рекурсивная иерархия — это иерархия данных, в которой все связи типа «родители-потомки» представлены в данных. Например, организационная схема, отображающая связи менеджера и служащего, может быть создана с помощью рекурсивной иерархии. В такой иерархии таблица имела бы столбцы для идентификатора служащего и идентификатора менеджера. Идентификатор менеджера имел бы ссылку на идентификатор служащего, подчиненного другому служащему, что привело бы к отображению целой иерархии служащих.
Чтобы создать рекурсивную иерархию, необходимо установить определенные свойства для группы в области данных. Используйте поле, содержащее уникальный идентификатор (например, идентификатор служащего) как выражение группы, а затем используйте поле, содержащее идентификатор родительского элемента (например, идентификатор менеджера) в свойстве Parent. Группа, которая определена как рекурсивная иерархия (то есть группа, которая использует свойство Parent), может иметь только одно выражение группы.
Используйте следующие шаги, чтобы создать рекурсивную иерархию с помощью таблицы Employee базы данных AdventureWorks. В этом учебнике предполагается, что пользователь умеет создавать отчеты, наборы данных, запросы и таблицы. Дополнительные сведения об этих функциях см. в соответствующей документации.
Создайте на основе базы данных AdventureWorks набор данных, возвращающий данные следующего запроса:
SELECT FirstName, LastName, EmployeeID, ManagerID
Добавьте в проект RDLC-файл определения клиентского отчета, а затем откройте отчет в режиме графического конструктора.
Добавьте в макет отчета табличную область данных.
В первой ячейке сведений таблицы введите следующее выражение:
=Fields!FirstName.Value & " " & Fields!LastName.Value
Щелкните правой кнопкой мыши угол таблицы и выберите пункт Свойства.
На вкладке Группа выберите Группирование подробностей.
На вкладке Общие в поле Выражение введите или выберите следующее выражение:
=Fields!EmployeeID.Value
В поле Родительская группа введите или выберите следующее выражение:
=Fields!ManagerID.Value
Функция Level
Можно использовать функцию Level для дополнения текстового поля, чтобы выравнивать имена служащих на основе их уровней в иерархии. Чтобы сделать это в таблице приведенного выше примера, используйте следующее выражение для левого дополнения текстового поля в первой ячейке сведений:
=Convert.ToString(2 + (Level()*10)) & "pt"
Для всех свойств заполнения необходимо указать строку в формате nnxx, где nn является числом, а xx — единицей измерения. По умолчанию дополнение для текстового поля равно 2 пунктам. Приведенное выше выражение создает строку, в которой используется функция Level для увеличения размера дополнения на основе уровня. Например, строка с уровнем 1 приведет к дополнению 12 пунктов (2 + (1*10)), а строка с уровнем 3 — к дополнению 32 пунктов (2 + (3*10)).
Дополнительные сведения о функциях, доступных для использования, см. в разделе Встроенные функции для отчетов (конструктор отчетов Visual Studio).
См. также
Задачи
Как отфильтровать данные в отчете (конструктор отчетов Visual Studio)
Понятия
Использование выражений в отчете (конструктор отчетов Visual Studio)