1. Домой
  2. Документы
  3. Источники данных
  4. Вспомогательные функции
  5. MakeTree

MakeTree

Моделирует иерархию групп и элементов на таблице.

Дополнительное описание:

После применения функции в результирующую таблицу добавляются следующие стандартные колонки:

  • _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.