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


Создание группы рекурсивной иерархии в отчете с разбивкой на страницы (построитель отчетов)

Область применения: Построитель отчетов (SSRS) Power BI конструктор отчетов построитель отчетов в SQL Server Data Tools

В отчетах с разбивкой на страницы группа рекурсивной иерархии организует данные отдельного набора данных отчета, который включает несколько уровней иерархии, например структуру подчинения для связей "начальник — подчиненный" в иерархии организации.

Прежде чем организовать данные в таблице в группу рекурсивной иерархии, необходимо получить один набор данных, содержащий все иерархические данные. При этом необходимы отдельные поля для группируемого элемента и для элемента, по которому происходит группирование. Например, набор данных, в котором необходимо провести рекурсивное группирование подчиненных каждого руководителя, может содержать в строках такие записи: имя, имя сотрудника, идентификатор сотрудника и идентификатор руководителя.

Примечание.

Создать и изменить определение для отчета на страницу (RDL-файл) можно с помощью построителя отчетов (Майкрософт), построителя отчетов Power BI и конструктора отчетов в SQL Server Data Tools.

Создание группы рекурсивной иерархии

  1. В представлении конструктора добавьте таблицу и перетащите туда поля набора данных, которые нужно отобразить. Обычно поле, отображаемое в виде иерархии, находится в первом столбце.

  2. Чтобы выбрать таблицу, щелкните правой кнопкой мыши в любой ее точке. Панель группирования отображает группу сведений для выбранной таблицы. На панели "Группы строк" щелкните правой кнопкой мыши группу Сведенияи выберите пункт Изменить группу. Откроется диалоговое окно Свойства группы .

  3. Щелкните Добавитьв области Выражения группирования. В сетке появится новая строка.

  4. В списке Группировать по введите или выберите поле для группирования.

  5. Щелкните Дополнительно.

  6. В поле Рекурсивный родитель введите или выберите поле для группирования.

  7. Нажмите ОК.

    Запустите отчет. Отчет выведет группу рекурсивной иерархии, хотя и не выделит иерархию с помощью отступов.

Форматирование группы рекурсивной иерархии с помощью отступов

  1. Щелкните текстовое поле, содержащее поле, к которому нужно добавить уровни отступа для вывода формата иерархии. Свойства этого текстового поля отобразятся на панели «Свойства».

    Примечание.

    Если панель "Свойства" не отображается, щелкните Свойства на вкладке Вид .

  2. В области "Свойства" разверните узел Заполнение, щелкните Влево и в раскрывающемся списке выберите <Выражение...>.

  3. На панели «Выражение» введите следующее выражение:

    =CStr(2 + (Level()*10)) + "pt"

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

  4. Нажмите ОК.

    Запустите отчет. Отчет выведет группированные данные в иерархическом представлении.