Sapforum.Biz

Инструменты => ABAP - Инструментальные средства => SE38 - ABAP Редактор => Тема начата: LFatMan от Май 04, 2018, 02:44:42 pm

Название: Построение и вывод иерархии
Отправлено: LFatMan от Май 04, 2018, 02:44:42 pm
   Здравствуйте. Имеется таблица с данными. Есть 2 поля. Id строки и id вышестоящего узла, который также является строкой в таблице. Соответственно, образуются деревья иерархии. В таблице таких деревьев 5, в каждом по несколько уровней иерархии.
   Задача вывести по id любой строки все дерево иерархии со всем содержимым.
   Алгоритм у меня следующий. Ищем родителей, пока не придем к корню, затем рекурсией находим детей. Использую cl_gui_alv_tree.
  Проблема - стаж абапа меньше месяца. Думалка никак не разберется с привязкой алгоритма к реализации. Если есть идеи по поиску детей и вывода дерева прошу поделиться. Bcalv_tree смотрел, но там сортировка по полям.

Название: Re: Построение и вывод иерархии
Отправлено: Uukrul от Май 05, 2018, 08:25:13 am
You are not allowed to view links. Register or Login
Алгоритм у меня следующий. Ищем родителей, пока не придем к корню, затем рекурсией находим детей. Использую cl_gui_alv_tree.
Вообще-то странный алгоритм. Правильно нужно считать всех родителей, у них ссылка на выше стоящий узел = NULL и выводим это дело на экран через CL_GUI_COLUMN_TREE, далее по событию EXPAND_NO_CHILDREN, которое вызывается для узла если в нем нет данных, подчитываем данные которые ссылаются на данный узел, после чего узел раскрывается. Таким образом не нужно считывать все дерево за раз, т.е. работает быстрее. По хорошему конечно для каждой считанной ветки нужно еще проверить наличие подчиненных чтобы понимать как отображать узел. В общем это больше к общему представлению о программировании имеет место, а не к абапу.

По поводу как рисовать и выводить.. вот этих примеров с головой как мне кажется.
(http://sapforum.biz/index.php?action=dlattach;topic=2973.0;attach=4395;image)