![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Визуализация Иерархической структуры [IB6.x]
Дима © (2008-04-29 14:14:00)Подскажите пожалуйста, как реализовать следующее:
есть таблица в БД (IB6.x), в ней такие поля
- id - идентификатор уникальный
- name - название подразделения
- link_to - идентификатор родителя
Т.е. простая иерархическая структура Подразделений.
Необходимо на Дельфи визуализировать в виде дерева, при чём полностью раскрытого, т.е. показать все листья дерева, при этом не использую рекурсии.
Как это сделать не меняя структуры таблицы?
Дима (2008-04-29 21:57:00) [21]запрос канает, но пользоваться рекурсией запрещено
Loginov Dmitry (2008-04-29 19:45:00) [22]> при этом не использую рекурсии.
рекурсия = рекурсивный SELECT - запрос? Какая же там вложенность, если даже такой запрос не канает?
Reindeer Moss Eater (2008-04-29 15:15:00) [23]А в прочем по барабану.
TVirtualDBTree и все.
Reindeer Moss Eater (2008-04-29 15:14:00) [24]Полностью открытое? Да неужели?
А затем уже по нажатии на определённый элемент - сканировать только данное поддерево.
Дима (2008-04-29 15:08:00) [25]Почему меняю?
Я просто пояснил, что надо показать полностью открытое дерево!
Reindeer Moss Eater (2008-04-29 15:05:00) [26]Чот ты по ходу темы меняешь исходные данные вопроса.
Дима (2008-04-29 14:56:00) [27]При запуске программы должно отобразиться полностью открытое дерево с показом всех листьев. Как просканировать всю базу и подобавлять в Дерево не использую рекурсии (т.к. элементов много и вложенность большая).
А затем уже по нажатии на определённый элемент - сканировать только данное поддерево.
Reindeer Moss Eater (2008-04-29 14:52:00) [28]Ну тады VirtualControls.
Все что ему надо - два ключа в датасете.
Ega23 (2008-04-29 14:48:00) [29]
> Наверное потому, что элементов дерева может быть слишком
> много и грузить его сразу целиком нет смысла.
Он же разом всё дерево раскрыть хочет?
Reindeer Moss Eater (2008-04-29 14:37:00) [30]Есть готовая библиотека VirtualControls. В том числе для DB.
Reindeer Moss Eater (2008-04-29 14:34:00) [31]Наверное потому, что элементов дерева может быть слишком много и грузить его сразу целиком нет смысла.
Ega23 (2008-04-29 14:34:00) [32]
> Почему такое ограничение?
Рекурсия в DataSet - бессмысленная штука.
А вот пройти один раз, построить список и вычислить корневые элементы, а дальше с этим списком рекурсивно работать - вот это уже другое дело.
Sergey13 (2008-04-29 14:32:00) [33]> [0] Дима (29.04.08 14:14)
> при этом не использую рекурсии.
Почему такое ограничение?
Ega23 (2008-04-29 14:25:00) [34]1. Взять TTreeView, проанализировать набор данных, добавить в дерево нужные узлы.
2. Написать (скачать из сети) какой-нибудь TDBTreeView. (Могу поделиться своим, но он у меня на специальные задачи заточен; комментариев и пояснений давать не буду, только голый исходник).