Моделирует иерархию групп и элементов на таблице.
Дополнительное описание:
После применения функции в результирующую таблицу добавляются следующие стандартные колонки:
- _level - уровень в дереве
- _order_in_tree - общий порядок строки в дереве.
Основное применение функции - построение иерархических отчетов с аналитикой по статьям бюджета.
Формат:
MakeTree( <idColumn>, <parentIdColumn>, <isGroupColumn>, <recource1>,...,<recourceN> )
Параметры:
- idColumn - имя колонки, содержащей идентификаторы элементов.
- parentIdColumn - имя колонки, содержащей идентификаторы родителей элементов.
- isGroupColumn - имя колонки, содержащей признак, что в строке содержится группа.
- resource1,... resourceN - имена числовых колонок, для которых будут вычислены итоги по группам.
Возвращаемый тип данных:
таблица
Пример:
Money | Period(&datestart, &datefinish) | GroupBy( BudgetItem, amount);
Catalog.BudgetItem | LeftJoin( $result_1, id, title, presentation, parent, isGroup, result_1.amount as amount, result_1.budgetitem = id ) | MakeTree( id, parent, isgroup, amount )
Первое выражение получает обороты по журналу Money за период. Второе выражение получает все элементы справочника Статьи бюджета и выполняет левое соединение с полученной ранее таблицей оборотов. Затем к полученной таблице применяется функция MakeTree. Результат представлен на Рисунке 1.
Рисунок 1. Результат применения функции MakeTree.