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


Как создать группу рекурсивной иерархии

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

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

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

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

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

    ПримечаниеПримечание

    Если область группирования не появилась, выберите Группирование в меню Вид.

  3. В области «Группы строк» щелкните правой кнопкой мыши группу Сведения и выберите пункт Изменить группу. Откроется диалоговое окно Свойства группы.

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

  5. В поле Группировать по выберите или введите выражение группирования — например, идентификатор сотрудника.

  6. Перейдите на вкладку Дополнительно.

  7. В поле Рекурсивный родитель выберите или введите выражение группирования — например, идентификатор менеджера.

  8. Нажмите кнопку ОК.

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

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

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

    ПримечаниеПримечание

    Если область свойств не появилась, выберите Окно свойств в меню Вид.

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

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

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

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

  4. Нажмите кнопку ОК.

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