![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Drag&Drop деревьев [D5, Paradox]
Денис Курьин © (2003-06-02 14:27:00)Доброго времени суток, уважаемые Мастера!
Подскажите, как осуществить Drag&Drop из одного дерева в другое с перекодировкой дерева Tree_2 в зависимости от структуры перетаскиваемой ветви дерева Tree_1, а также копированием соответствующих данных, хранящихся в других таблицах, связаных с деревом Tree_1?
Карелин Артем (2003-06-03 14:43:00) [1]Скажем так: у веток деревьев есть некое свойство TTreeNode.Data
Так вот туда при создании ветки можно запихать идентификатор ветки.
Дальше можно пройтись по всем дочерним элементам нужной ветки и получив нужные идентификаторы поместить на новое место.
Денис Курьин (2003-06-02 15:18:00) [2]Ну, вроде вкурил, но еще каша в голове, попробую, может и получится, всем огромное спасибо
Соловьев (2003-06-02 15:10:00) [3]ну когда ты сохранишь первый уровень, то получишь новые id этих элементов, вот их и присвоишь следующему уровню вместо старых
Денис Курьин (2003-06-02 15:07:00) [4]а как быть с перекодировкой дерева-получателя, ведь мне надо точно такую же структуру построить
Соловьев (2003-06-02 15:00:00) [5]
> этой ветви 30 000 потомков,
а ты по уровням переноси, а не сразу всех.
Денис Курьин (2003-06-02 14:56:00) [6]а если у этой ветви 30 000 потомков, тогда как, а топтаться задача будет на 486 :-(
Соловьев (2003-06-02 14:54:00) [7]
> куда мне промежуточные результаты складывать,
динамический массив.
Денис Курьин (2003-06-02 14:53:00) [8]А как это будет выглядеь в целом, куда мне промежуточные результаты складывать, промежуточная таблица не желательна.
Zacho (2003-06-02 14:52:00) [9]
> Денис Курьин © (02.06.03 14:42)
В LocalSQL - никак. В разных SQL-серверах есть разные способы для этого, а для Парадокса только рекурсивной процедурой.
Соловьев (2003-06-02 14:51:00) [10]
> Денис Курьин © (02.06.03 14:42)
в парадоксе очень тяжело работать с деревьми, так как нельзя сделать ХП с рекурсией, прийдется писать в цыкле запрос вида
select *
from table
where id=:idparent
Денис Курьин (2003-06-02 14:42:00) [11]Как получить SQL-запросом всех детей ветви, если кодировка деревьев следующая:
Id Parent Name
1 0 111
2 0 222
3 1 111_333
4 3 333_444
Допустим, я хочу получить ветвь с Id = 1 и всех ее потомков (Id=1,3,4)
А потом эту ветку засунуть в другое дерево но c Id = 15?
Карелин Артем (2003-06-02 14:34:00) [12]Вообще-то деревья в базе можно хранить туевой хучей способов. Ответ можно дать только при более подробной формулировке.
Вопрос на засыпку: если можно построить дерево из содержимого некой базы и получить связанные с деревом даные, то почему нельзя получить эти данные для ветки и засунуть в другое место?