Дерево в таблицу
Компонент преобразует данные, представленные в иерархической древовидной форме, в таблицу. Отмеченные узлы будут выведены в колонки выходного набора данных.
Вход
Входное дерево — набор данных в иерархической древовидной форме.
Выход
Выходной набор данных — таблица данных.
Мастер настройки
Настройка входного набора
Данные во входном порте узла представлены в виде входного и выходного наборов.
В списке Входное дерево отображаются поля принятого портом набора данных, которые следует сопоставить с полями набора, подаваемого портом на обработку — Выходное дерево (подробнее см. Порты).
Структуру набора, подаваемого на обработку, можно задать вручную или загрузить из файла *.xsd.
Задание структуры узлов вручную
При ручном формировании структуры набора, который впоследствии будет подан на обработку, используются команды панели инструментов или контекстного меню.
Панель инструментов и контекстное меню списка Входное дерево содержит команды:
- Выбрать все — помечает все узлы.
- Снять выделение со всех — снимает выделение со всех узлов.
- Инвертировать выделение — поменять выбранные узлы на невыбранные и наоборот.
Для списка Выходное дерево на панели инструментов и в контекстном меню доступны команды:
- Добавить дочерний узел — позволяет добавить к корневому узлу дочерний узел.
- Добавить соседний узел — позволяет создать узел того же уровня иерархии, что и выбранный.
- Редактировать... — позволяет вызвать окно редактирования и изменить значения полей для выбранного узла (команду также можно вызвать горячей клавишей F2).
- Переместить вверх и Переместить вниз — позволяют менять порядок узлов, при этом корневой узел Root переместить нельзя (команды также доступны по комбинации горячих клавиш Ctrl+Up и Ctrl+Down соответственно).
- Загрузить из XSD... — загружает структуру узлов выходного дерева из файла формата XSD.
- Исключить корневой узел при публикации — при установленном флаге из REST и SOAP сообщений исключается корнейвой узел Дерева данных (по умолчанию опция отключена).
- Синхронизировать поля — синхронизируется список выходных полей порта со списком входных (алгоритм синхронизации см. автоматическая синхронизация полей).
- Автоматическая синхронизация — при включении данного режима команда Синхронизировать поля будет выполняться автоматически при выполнении узла (включена по умолчанию).
- Удалить — удаляет дочерний узел дерева, иконка этой команды высвечивается при наведении курсора на узел (команду также можно вызвать горячей клавишей Delete).
- Удалить все... — удаляет все дочерние узлы (комбинация горячих клавиш Shift+Delete).
Примечание: Удалить корневой узел Root нельзя.
При выполнении команд Добавить дочерний узел, Добавить соседний узел, Редактировать... задаются значения полей:
- Имя — уникальное наименование столбца в рамках одного набора данных. Может состоять из:
- Заглавных или строчных латинских букв;
- Символов подчеркивания;
- Цифр (не может быть первым символом).
- Метка — произвольное описание поля.
- Тип данных — один из возможных типов данных.
- Вид данных — один из возможных видов данных.
Кроме того, можно установить следующие признаки:
- Массив — при установке флага выбранный дочерний узел будет определен как упорядоченное множество (массив) данных одного типа.
- Контейнер — если флаг установлен, выбранный дочерний узел будет являться корневым узлом для других создаваемых дочерних узлов разных типов.
Записи в списках Входное дерево и Выходное дерево можно отфильтровать с помощью команды Фильтрация на соответствующей панели инструментов.
Загрузка структуры узлов из XSD схемы
Структуру выходного дерева можно загрузить из файла формата XSD с помощью команды Загрузить из XSD...
В появившемся диалоговом окне необходимо заполнить поля:
- XSD файл — поле для выбора файла (не редактируемое).
- Пространство имен — выбор пространства имен из списка всех пространств имен описанных в файле XSD, ограничивает выбор корневого элемента только указанным пространством. По умолчанию принимает значение Все пространства имен.
- Корневой элемент — выбор корневого узла из списка в загруженном файле. По умолчанию имеет значение первого корневого узла выбранного файла.
- Глубина рекурсии — максимальное число рекурсий при раскрытии рекурсивных узлов. Выбирается в диапазоне от 0 до 3. По умолчанию равно 1, что означает: каждый рекурсивный узел будет раскрыт автоматически, но рекурсивные узлы внутри этих узлов останутся нераскрытыми. Дополнительно раскрытие рекурсивных узлов можно проводить вручную после построения дерева. При значении 0 все рекурсивные узлы не будут раскрыты автоматически.
После заполнения всех полей необходимо нажать кнопку Загрузить и XSD схема будет загружена для дальнейшей работы.
Сопоставление полей
Для сопоставления полей входного и выходного дерева необходимо задать между ними связи. Это можно сделать нажав кнопку Связать автоматически. Входные и выходные поля будут связаны, если у них совпадают имена и тип данных. Связи также можно установить вручную, с помощью метода Drag-and-drop путем перетаскивания элемента из левого списка на элемент из правого списка. В этом случае имена полей не важны, однако типы данных должны совпадать.
Связи между узлами можно удалять:
- с помощью кнопки Удалить все связи — удаляет все связи;
- нажатием на кнопку на линии связи (при наведении курсора кнопка меняет вид на ).
Выбор узлов дерева
Мастер настройки узла представляет собой отображение дерева (дерево, поданное на выход входного порта) с возможностью выбора некоторых или всех узлов. Отмеченные узлы будут выведены в колонки выходного набора данных.
Доступные действия представлены в виде кнопок на панели инструментов и в контекстном меню:
- Выбрать все – помечает все узлы.
- Снять выделение со всех – снимает выделение со всех узлов.
- Инвертировать выделение – меняет выбранные узлы на невыбранные и наоборот.
Пометить выделенный узел можно нажав клавишу Enter, повторное нажатие Enter снимает выделение.
Логика выбора узлов:
- При выборе узла выбираются так же и его родители, вплоть до корня.
- При снятии выделения с ветки выделение снимается и со всех потомков.
- Глобальный индекс узла - узел отсутствует в древовидной структуре данных, однако он появляется в отображении дерева и указывает на индекс, используемый в узле-массиве. Его можно выбрать, при этом также выбирается и узел массива. Узел получает индекс -1, который учитывается при сортировке. При выборе узла для него формируется колонка с именем узла массива с добавлением "_global_index" и меткой узла массива с добавлением "|Глобальный индекс".
Важно: Компонент будет выдавать ошибку при выходе со страницы настройки или при выполнении, если у него нет ни одного выбранного узла.
Дублировать значения родительских узлов – если в структуре имеется родительский узел и последовательность потомков, значение родительского узла будет продублировано для каждой строки, образованной из последовательности потомков.
Генерировать составные метки полей – при наличии данного флага используется составная метка узла массива: в метках полей будет отражена иерархия относительно корневого элемента.