Создание группы рекурсивной иерархии (построитель отчетов и службы SSRS)
Группа рекурсивной иерархии организует данные отдельного набора данных отчета, включающего несколько уровней иерархии, например структуру подчинения для иерархии связей «начальник-подчиненный» в организации.
Прежде чем организовать данные в таблице в группу рекурсивной иерархии, необходимо получить один набор данных, содержащий все иерархические данные. При этом необходимы отдельные поля для группируемого элемента и для элемента, по которому происходит группирование. Например, набор данных, в котором необходимо провести рекурсивное группирование подчиненных каждого руководителя, может содержать в строках такие записи: имя, имя сотрудника, идентификатор сотрудника и идентификатор руководителя.
Примечание
Создавать и изменять определения отчетов (RDL-файлы) в SQL Server Data Tools можно в построителе отчетов и конструкторе отчетов В каждой среде разработки существуют различные способы создания, открытия и сохранения отчетов и связанных элементов. Дополнительные сведения см. в статье Проектирование отчетов в конструктор отчетов и Report Builder (SSRS) в Интернете по адресу microsoft.com.
Создание группы рекурсивной иерархии
В представлении конструктора добавьте таблицу и перетащите туда поля набора данных, которые нужно отобразить. Обычно поле, отображаемое в виде иерархии, находится в первом столбце.
Чтобы выбрать таблицу, щелкните правой кнопкой мыши в любой ее точке. Панель группирования отображает группу сведений для выбранной таблицы. На панели "Группы строк" щелкните правой кнопкой мыши группу Сведенияи выберите пункт Изменить группу. Откроется диалоговое окно Свойства группы .
Щелкните Добавитьв области Выражения группирования. В сетке появится новая строка.
В списке Группировать по введите или выберите поле для группирования.
Щелкните Дополнительно.
В поле Рекурсивный родитель введите или выберите поле для группирования.
Нажмите кнопку ОК.
Запустите отчет. Отчет выведет группу рекурсивной иерархии, хотя и не выделит иерархию с помощью отступов.
Форматирование группы рекурсивной иерархии с помощью отступов
Щелкните текстовое поле, содержащее поле, к которому нужно добавить уровни отступа для вывода формата иерархии. Свойства этого текстового поля отобразятся на панели «Свойства».
Примечание
Если панель "Свойства" не отображается, щелкните Свойства на вкладке Вид .
В области Свойства разверните
Padding
узел, нажмите кнопку Слева и в раскрывающемся списке выберите <Выражение...>.На панели «Выражение» введите следующее выражение:
=CStr(2 + (Level()*10)) + "pt"
Для свойств заполнения необходимо указать строку в формате nnyy, где nn — число, а yy — единица измерения. Приведенное выражение создает строку, в которой используется функция
Level
для увеличения отступа в зависимости от уровня рекурсии. Например, строка с уровнем 1 будет иметь отступ в 12 пунктов (2 + (1*10)), а строка с уровнем 3 — отступ в 32 пункта (2 + (3*10)). Дополнительные сведения о функции см. вLevel
разделе Level.Нажмите кнопку ОК.
Запустите отчет. Отчет выведет группированные данные в иерархическом представлении.
См. также:
Создание групп рекурсивной иерархии (построитель отчетов и службы SSRS)
Фильтрация, группирование и сортировка данных (построитель отчетов и службы SSRS)
Справочник по агрегатным функциям (построитель отчетов и службы SSRS)
Таблицы (построитель отчетов и службы SSRS)
Матрицы (построитель отчетов и службы SSRS)
Списки (построитель отчетов и службы SSRS)
Таблицы, матрицы и списки (построитель отчетов и службы SSRS)