Работа с иерархическими деревьями

Описание иерархического дерева

Списки объектов могут быть представлены в виде иерархического дерева.

Иерархическое дерево отображает настроенную структуру (иерархию) объектов. Дерево строится из элементов иерархии, где каждый элемент включает в себя объекты одного класса/типа.

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

Размещение в интерфейсе

Иерархические деревья могут располагаться:

  • на карточке объекта;
  • на форме редактирования атрибута связи объекта (Форма добавления связи);
  • на форме редактирования параметра пользовательского действия по событию.

Возможные действия с иерархическим деревом

Просмотр

Дерево строится из элементов иерархии, где каждый элемент включает в себя объекты одного класса/типа. Элементы иерархии могут размещаться на корневом уровне или быть вложенными и вложенными во вложенные. Каждый новый уровень сдвигается вправо.

Наличие вложенных элементов иерархии обозначается треугольником слева от названия объекта. При нажатии на треугольник разворачивается вложенный уровень (вложенные во вложенные при этом не открываются).

Если вложенных элементов иерархии нет, то вместо треугольника отображается кружок.

Для каждого элемента иерархии отображаются:

  • название элемента иерархии заглавными буквами (если отображение названия включено в настройках системы);
  • строка с заголовками колонок, иконкой сортировки и иконками для вызова формы быстрой фильтрации (отображаются при наведении курсора на строку);
  • список объектов (может быть пуст);
  • элементы постраничной навигации — по умолчанию отображаются по 20 объектов. Если объектов меньше 20, то элементы постраничной навигации не отображаются.

Фокусировка на текущем объекте

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

Вышестоящие элементы иерархии отображаются все от корневого до текущего или только тот, в который вложен текущий.

Фильтрация

Для всего иерархического дерева можно настроить фильтрацию, аналогично фильтрации в списке объектов, см. Общая фильтрация.

Форма настройки фильтрации открывается при нажатии кнопки "Фильтрация" на панели действий.

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

Критерии фильтрации настраиваются отдельно для каждого элемента структуры (при нажатии на иконку в строке элемента) и применяются все вместе при нажатии кнопки Сохранить.

Настроенные критерии фильтрации для каждого элемента структуры объединяются по И.

В результате применения фильтрации:

  • происходит раскрытие списков до объекта, который удовлетворяет результатам фильтрации. Количество раскрываемых списков будет ограничено через конфигурационный файл dbaccess.properties, по умолчанию ограничение — 200 списков.

  • скрываются все пустые ветви, т.е. те объекты, для которых дочерние списки — пустые. Если объект на верхнем уровне подходит под условие фильтрации, но дочерние списки пусты, то такой объект будет скрыт.

  • если для уровней включено отображение названия элемента структуры, то иконка отображается в результатах фильтрации и раскрывается до объекта, который удовлетворяет результатам фильтрации.

Особенности отображения иерархического дерева при фильтрации:

  • Если иерархическое дерево состоит из двух элементов, один из которых вложен в другой, но для которых при фильтрации вложенные объекты не отображаются, то:

    • Если фильтрация настроена только для родительского элемента, то в иерархическом дереве будут отображаться родительские элементы, подходящие под условия фильтрации. К вложенным элементам фильтрация не применяется.
    • Если фильтрация настроена только для вложенных элементов, то в иерархическом дереве будут отображаться только те родительские элементы, вложенные элементы которых подходят под условия фильтрации.
    • Если фильтрация настроена для родительского и вложенного элементов, то условия фильтрации объединяются по условию "И", и в иерархическом дереве будут отображаться родительские элементы, которые сами подходят под условия фильтрации и содержат вложенные элементы, также подходящие под условия фильтрации.
  • Если иерархическое дерево состоит из двух элементов, один из которых вложен в другой, но для которых при фильтрации отображаются вложенные объекты, то:

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

    • Если фильтрация настроена, то в иерархическом дереве будут отображаться родительские элементы, вложенные элементы которых подходят под условия фильтрации, даже если сами они не подходят под эти условия.

Экспорт списка

Списки объектов в иерархическом дереве можно экспортировать в электронные таблицы формата .xlsx. Экспортируются все записи, которые отображаются в списке согласно настроенным фильтрам. Быстрая фильтрация и сортировка при выгрузке списка не учитываются.

Права для экспорта иерархического дерева не настраиваются.

Чтобы выполнить экспорт списка нажмите кнопку "Экспорт списка" на панели действий списка.

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

Поиск

Для просмотра определенных объектов в иерархическом дереве можно воспользоваться поиском.

Поисковый запрос вводится в поле поиска на панели действий списка, поиск запускается при нажатии на клавишу Enter или иконку поиска ("Лупа") в поле поиска.

Результаты поиска отображаются в виде иерархического дерева. Объекты, удовлетворяющие результатам поиска, выделяются цветом. Элементы иерархии, в которых нет ни одного элемента удовлетворяющего условию поиска, скрываются.

Если в результате поиска найден объект (или объекты) только на корневом уровне, то он отображается в свернутом виде, наличие вложенных элементов иерархии обозначается треугольником слева от названия объекта. При нажатии на треугольник разворачивается вложенный уровень (вложенные во вложенные при этом не открываются).

Если в результате поиска найден вложенный объект на любом уровне, то элементы иерархического дерева разворачиваются до объекта, который удовлетворяет результатам поиска.

Слева от элемента, в который вложен найденный объект, отображается иконка ("Показать все вложенные объекты"). При нажатии на иконку отображаются все вложенные объекты, сама иконка меняется на иконку ("Показать только найденные объекты"). При нажатии на иконку отображаются только объекты, удовлетворяющие результатам поиска.

Возврат к полному списку выполняется при нажатии на в поле поиска. При сбросе поискового запроса иерархическое дерево выстраивается с учетом ранее сохраненного состояния развернутости.

Поиск и фильтрация в иерархическом дереве работают совместно.
Если в поле поиска введен текст и поиск осуществлен (нажата клавиша Enter или иконка поиска) и настраивается фильтрация, то в результатах отображается объекты, найденные поиском с учетом фильтрации.
Если настроена фильтрация и в поле поиска производится поиск (вводится текст и нажимается клавиша Enter или иконка поиска), то в результатах отображаются объекты, удовлетворяющие условиям фильтрации и результатам поиска.

Возможные действия в рамках элемента иерархии

Сортировка

Каждый из вложенных списков иерархического дерева по умолчанию сортируется по первой колонке. Слева от названия колонки отображается индикатор направления сортировки .

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

Направление сортировки по умолчанию:

  • по убыванию — для колонок с атрибутами типа "Дата", "Дата/время", "Целое число";
  • по возрастанию — для колонок с атрибутами типа "Вещественное число", "Временной интервал";
  • по возрастанию (сначала ложь, потом истина) — для колонок с атрибутами типа "Логический";
  • по возрастанию (по алфавиту в прямом порядке) — для колонок с атрибутами типа "Строка", "Элемент справочника", "Гиперссылка", "Тип объекта", "Статус" и "Агрегирующий".

Чтобы изменить порядок сортировки, повторно нажмите на название столбца. Индикатор направления сортировки изменит направление, сортировка будет выполнена в обратном порядке.

Фильтрация по одному атрибуту

В любом списке иерархического дерева можно настроить фильтрацию по одному атрибуту (быстрая фильтрация) аналогично фильтрации в списке объектов, см. Фильтрация списка по одному атрибуту.

Быстрая фильтрация в иерархическом дереве применяется только к тому уровню дерева, для которого был настроен фильтр.

Выполнение массовых операций

В каждом из вложенных списков иерархического дерева можно выполнить массовые операции с элементами списка.

Массовые операции выполняются по общим правилам.

Флажки для выбора объектов и панель массовых операций могут быть скрыты при настройке системы.

Флажки могут быть скрыты для всех элементов иерархии.

Флажки могут быть скрыты для отдельных элементов иерархии.

Настройка ширины колонок

Ширина колонок списка определяется автоматически и может изменяться пользователем вручную.

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

Чтобы изменить ширину колонки, наведите курсор на область разделения колонки в строке названия (изображение курсора изменится на символ изменения размера), нажмите левую клавишу мыши и переместите курсор по горизонтали. Изменяется ширина колонки слева от разделителя. При уменьшении или увеличении ширины колонки, на ту же величину изменяется общая ширина списка.

Если курсор уводится за правую границу экрана, то увеличение ширины колонки продолжится вместе с прокруткой страницы.

При изменении ширины колонки на разных уровнях ширина вложенного уровня синхронизируется с шириной родительского уровня (автоматическая синхронизация зависит от настройки системы).

Если вид списка не изменялся, то при редактировании настроек системного вида изменения применяются после перезагрузки страницы.
Если для списка применен пользовательский вид или переопределен системный (например, изменена ширина колонки или сортировка), то при изменении настроек системного вида они применяются только при выборе пользователем — "[Выберите вид]".

Как настроить иерархическое дерево