3.2.2.2. tree

Раздел находится в разработке.

Древовидный фрейм отображает список записей в иерархической (древовидной) структуре: каждая запись может иметь родительскую запись и подчинённые записи, а узлы дерева можно разворачивать и сворачивать. Иерархия строится по связи запись—предок (idAttr и idParentAttr).

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

3.2.2.2.1. Спецификация пунктов контекстного меню

See also

Пункты, общие с грид-фреймом (копирование, вставка, область итогов, экспорт, настройки пользователя и т. д.), описаны в разделе «Спецификация пунктов контекстного меню» грид-фрейма. Ниже приведены только пункты, специфичные для дерева или работающие в нём иначе.

3.2.2.2.1.1. Автофильтр

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

Результат отбора отображается по следующим правилам:

  • Запись, прошедшая фильтр, предок которой под фильтр не попал, выводится на корневом уровне дерева.

  • Если под фильтр попали и предок, и потомок, иерархическая связь между ними сохраняется — потомок остаётся вложенным в своего предка.

Доступность:

Пункт доступен только для полностью загруженного дерева (fetchAllTree = true). Для частично загруженного или рекурсивного (курсорного) дерева фильтрация в памяти невозможна, поэтому пункт недоступен.

Added in version 1.28.0-ms14.

3.2.2.2.1.2. Свернуть все дерево

Сворачивает все узлы дерева до корневого уровня. Доступен только для полностью загруженного дерева.

See also

3.2.2.2.1.3. Развернуть все дерево

Разворачивает все узлы дерева. Доступен только для полностью загруженного дерева.

See also

3.2.2.2.1.4. Свернуть всю ветку

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

Доступность:

Пункт работает на дереве любого типа, включая частично загруженное и рекурсивное (курсорное), и недоступен, когда в дереве нет текущей записи.

See also

Added in version 1.29.0-ms2.

3.2.2.2.1.5. Развернуть всю ветку

Разворачивает поддерево текущего узла до самого нижнего уровня вложенности.

Доступность:

В отличие от «Развернуть все дерево», пункт работает и на частично загруженном, и на рекурсивном (курсорном) дереве: потомки каждого узла ветки, которые ещё не загружены, дозагружаются отдельными запросами к базе данных. Пункт недоступен, когда в дереве нет текущей записи.

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

See also

Added in version 1.29.0-ms2.

3.2.2.2.2. Навигация с клавиатуры

Дополнительно дерево поддерживает горячие клавиши разворота и сворачивания узлов. Клавиши назначаются через менеджер горячих клавиш. Действия над всем деревом доступны только для полностью загруженного дерева, действия над одним узлом и над его веткой — для дерева любого типа:

  • свернуть всё дерево;

  • развернуть всё дерево;

  • развернуть текущий узел;

  • свернуть текущий узел;

  • развернуть ветку текущего узла;

  • свернуть ветку текущего узла.