Поделиться через


Группирование данных в отчете

Изменения: 14 апреля 2006 г.

Данные в каждой из областей данных (таблица, матрица, список и диаграмма) можно сгруппировать с помощью полей и выражений. Для обеспечения логического секционирования данных внутри таблицы можно использовать группы внутри таблицы. Кроме того, к заголовку группы или ее нижнему колонтитулу можно добавить подытоги и другие выражения. Группы отображаются в матрице в виде динамических столбцов или строк. Группы можно вложить в другие группы и добавить подытоги. Для предоставления отдельных групп в отчете можно использовать списки либо поместить списки внутрь списков для вложенных групп.

Для просмотра инструкций о группировании данных в областях данных см. разделы:

Рекурсивные иерархии

Рекурсивная иерархия — это иерархия данных, в которой все связи типа «родители-потомки» представлены в данных. Например, организационная структура, отображающая связи менеджера и служащего, может быть создана с использованием рекурсивной иерархии. В такой иерархии таблица имела бы столбцы для идентификатора служащего и идентификатора менеджера. Идентификатор менеджера имел бы ссылку на идентификатор служащего, подчиненного другому служащему, что привело бы к отображению целой иерархии служащих.

Для создания рекурсивной иерархии необходимо установить определенные свойства для группы в области данных. Используйте область, содержащую уникальный идентификатор (например, идентификатор служащего) как выражение группы, а затем используйте область, содержащую идентификатор родительского элемента (например, идентификатор менеджера) в свойстве Parent. Группа, которая определена как рекурсивная иерархия (то есть группа, которая использует свойство Parent), может иметь только одно выражение группы.

Используйте следующий учебник для создания рекурсивной иерархии с помощью таблицы Employee базы данных AdventureWorks. В этом учебнике предполагается, что пользователь умеет создавать отчеты, наборы данных, запросы и таблицы. Дополнительные сведения об этих возможностях см. в соответствующей документации.

  1. В представлении «Данные» создайте набор данных на основании базы данных AdventureWorks.

  2. В наборе данных используйте следующий запрос:

    SELECT FirstName, LastName, EmployeeID, ManagerID
    FROM   HumanResources.Employee E INNER JOIN
           Person.Contact C ON  E.ContactID=C.ContactID
    
  3. В режиме разметки создайте область данных таблицы.

  4. В первой ячейке сведений таблицы введите следующее выражение:

    =Fields!FirstName.Value & " " & Fields!LastName.Value
    
  5. Щелкните правой кнопкой мыши угол таблицы и выберите Свойства.

  6. На вкладке Группа щелкните Группирование подробностей.

  7. На вкладке Общие в поле Выражение введите или выберите следующее выражение:

    =Fields!EmployeeID.Value
    
  8. В поле Родительская группа введите или выберите следующее выражение:

    =Fields!ManagerID.Value
    

Функция Level

Можно использовать функцию Level в дополнении текстового поля для выравнивания имен служащих на основе их уровней в иерархии. Чтобы сделать это в таблице из предыдущего примера, выберите текстовое поле в первой ячейке подробных сведений. Откройте окно свойств текстового поля. Разверните узел Заполнение и щелкните свойство Слева. Выберите пункт <Выражение…> в раскрывающемся списке и введите следующее:

=Convert.ToString(2 + (Level()*10)) + "pt"

Для всех дополнительных свойств необходимо указать строку в формате nnxx, где nn является числом, а xx — единицей измерения. По умолчанию дополнение для текстового поля равно 2pt. Приведенное выше выражение создает строку, в которой используется функция Level для увеличения размера дополнения на основе уровня. Например, строка с уровнем 1 приведет к дополнению 12 пунктов (2 + (1*10)), а строка с уровнем 3 — к дополнению 32 пунктов (2 + (3*10)).

Дополнительные сведения о функции Level см. в разделе Функция Level (службы Reporting Services).

См. также

Основные понятия

Работа с областями данных
Работа с табличными областями данных
Работа с областями данных матрицы
Работа с областями списков данных
Работа с областями данных диаграммы

Справка и поддержка

Получение помощи по SQL Server 2005

Журнал изменений

Версия Журнал

14 апреля 2006 г.

Измененное содержимое:
  • Исправлен запрос для работы с базой данных AdventureWorks вместо AdventureWorks2000.