Таблица в дерево

Узел Таблица в дерево преобразует исходные данные, представленные в виде плоской (двумерной) таблицы, в иерархическую (древовидную) форму. Количество уровней вложенности при этом не ограничено.

Порты

Вход

  • Входной источник данных Входной источник данных — порт для подключения входного набора данных в виде таблицы.

Выход

  • Выходной источник данных Выходной источник данных — порт, отдающий данные после их преобразования в древовидную форму.

Мастер настройки

В окне настройки необходимо настроить соответствие между входными данными, которые находятся слева в поле Столбцы исходного набора, и создаваемым деревом данных, которое находится справа в полях Узел дерева и Связанные поля.

На начальном этапе в правом поле доступен только один корневой каталог — Root.

Чтобы создать иерархическую структуру необходимо в корневой папке добавить хотя бы один дочерний узел. Это можно сделать двумя способами:

  1. Выделить корневой узел и с помощью кнопки Добавить дочерний узел добавить дочерний узел.
  2. Командой контекстного меню Добавить дочерний узел Добавить дочерний узел.

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

  • Имя — уникальное наименование столбца в рамках одного набора данных. Может состоять из:
    • заглавных или строчных латинских букв;
    • символов подчеркивания;
    • цифр (не может быть первым символом).
  • Метка — произвольное описание поля.
  • Тип данных — один из возможных типов данных.
  • Вид данных — один из возможных видов данных.
  • Массив — при указании этого чекбокса выбранный дочерний узел будет определен как упорядоченное множество (массив) данных одного типа.
  • Контейнер — при указании этого чекбокса выбранный дочерний узел будет являться корневым узлом для других создаваемых дочерних узлов разных типов.

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

После создания, заданные значения полей для дочернего узла можно поменять. Для этого можно воспользоваться горячей клавишей F2, предварительно выделив нужный узел. Также это можно сделать командой контекстного меню Редактировать... Редактировать..., либо, выделив необходимый узел, нажать на кнопку Редактировать....

Кнопкой Загрузить из XSD... Загрузить из XSD... можно выбрать файл формата *.xsd, из которого будет загружена выходная структура узлов (также кнопка дублируется командой контекстного меню). В появившемся диалоговом окне будут следующие поля:

  • XSD файл — поле для выбора *.xsd-файла (не редактируемое).
  • Пространство имен — выбор пространства имен из списка всех пространств имен описанных в xsd-файле, ограничивает выбор корневого элемента только указанным пространством. По умолчанию выставляется значение Все пространства имен.
  • Корневой элемент — выбор корневого узла из списка в загруженном *.xsd-файле. По умолчанию выставляется значение первого корневого узла выбранного файла.
  • Глубина рекурсии — максимальное число рекурсий при раскрытии рекурсивных узлов. Выбирается в диапазоне от 0 до 3. По умолчанию равно 1, что означает: каждый рекурсивный узел будет раскрыт автоматически, но рекурсивные узлы внутри этих узлов останутся нераскрытыми. Дополнительно раскрытие рекурсивных узлов можно проводить вручную после построения дерева. При значении 0 все рекурсивные узлы не будут раскрыты автоматически.
  • Формировать метки узлов по xsd:documentation — если этот параметр включен, то узлы дерева получат в качестве меток значения из первой непустой строки *.xsd-файла. Если документация отсутствует или параметр выключен, то метка узла генерируется по имени элемента или атрибута.

После заполнения всех полей необходимо нажать кнопку Загрузить и XSD схема будет загружена для дальнейшей работы.

Кнопка Сгенерировать дочерние элементы Сгенерировать дочерние элементы раскрывает рекурсивный узел (добавляет все подузлы рекурсивного узла в дерево данных). Уже раскрытый рекурсивный узел нельзя раскрыть повторно. Если не загружена XSD схема (не выполнялось действие "Загрузить из XSD...") или загруженное дерево не содержит рекурсивных узлов, то кнопка скрыта/неактивна.

Кнопка Следующий рекурсивный нераскрытый узел Следующий рекурсивный нераскрытый узел выбирает текущим узлом следующий рекурсивный нераскрытый узел после текущего выбранного узла. Для того чтобы выбрать первый рекурсивный узел необходимо выбрать корневой узел и выполнить переход к следующему рекурсивному нераскрытому узлу. Если не загружена XSD схема (не выполнялось действие "Загрузить из XSD...") или загруженное дерево не содержит рекурсивных узлов, то кнопка скрыта/неактивна.

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

Помимо автоматической связи, входные и выходные узлы можно связывать вручную с помощью метода Drag-and-drop, перетаскивая метки поля из левого списка полей на элемент из правого списка полей. В этом случае значения имен полей не важны, однако типы данных по-прежнему должны совпадать.

Созданные связи между узлами можно удалять. Все связи разом можно удалить с помощью кнопки Удалить все связиУдалить все связи, либо с помощью команды контекстного меню Удалить все связиУдалить все связи, вызванного на любом из элементов списке. Для удаления какой-либо конкретной связи можно воспользоваться командой контекстного меню Удалить связьУдалить связь, вызванную на одном из связанных элементов. второй вариант — непосредственно щелкнуть левой кнопкой мыши на связь, которую необходимо удалить, и нажать на кнопку Удалить связь удаления связи (Удалить связь при наведении на нее курсора).

Созданные дочерние узлы можно расположить в удобном для себя порядке. Для этого необходимо выделить узел, который нужно переместить и нажать на кнопки Переместить вверхПереместить вверх (комбинация горячих клавиш Ctrl+Up) или Переместить внизПереместить вниз (комбинация горячих клавиш Ctrl+Down). Аналогичные команды есть и в контекстном меню каждого узла в правом окне (корневой узел Root переместить нельзя).

  • ФильтрацияФильтрация – позволяет отобрать поля по имени или его части.
  • Поиск Поиск – позволяет отметить поля по имени или его части.

Чтобы сбросить параметры фильтрации или поиска нужно воспользоваться кнопкой Очистить

Удалить дочерний узел можно нажав на иконку УдалитьУдалить (горячая клавиша Delete), которая находится с правой части строки дочернего узла и видна при наведении курсора на строку. Все созданные дочерние узлы можно удалить нажав на кнопку Удалит все...Удалить все... (комбинация горячих клавиш Shift+Delete).