![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 15.08.2008
Сообщений: 12
|
![]()
Здравствуйте!
В моей программе нужно использовать компонент типа DBTreeView. И вот возникла такая проблемка. Если в дереве есть, например, 10 полностью одинаковых веток (имеющие разных родителей), то они со всеми внутренностями все равно в базе данных должны быть описаны 10 раз. Если потом что-то надо будет поменять, то придется менять все 10 строк. Можно ли как-то исхитриться и в DBTreeView сделать так, чтобы одному элементу "id" соответствовало несколько родительских "parent id"? Я пробовал так редактировать таблицу, но в таком случае в общем дереве отображается только одна из 10 одинаковых веток. Я использую dxDBTreeView от DevExpress, также видел еще несколько подобных компонентов, но те ругаются, что id не уникально. ![]() Уже возникает мысль вручную пробежать по БД и сформировать TreeView, но тогда потом при редактировании БД тоже придется вручную вносить изменения в TreeView, что не очень хорошо. Единственное, что я нашел более-менее подходящим - это компонент JvDBTreeView. Но там другая проблема - при выборе в дереве, скажем, 4-ой из одинаковых веток таблица позиционируется всегда на 1-ю ветку. С одной стороны это логично, ведь компонент предполагает, что id уникально в таблице и, находя первое совпадение, позиционируется на эту строку, не обращая внимание на то, что parent id в этой строке не то, что в выбранном узле дерева. Надеюсь, что понятно объяснил ![]() А вообще, можно ли узнать для выбранного узла дерева его id и id родителя без ручного поиска по таблице? В свойствах элемента node ничего подобного не видно, там хранится только сам отображаемый текст. Вот и приходится, чтобы позиционироваться на полностью соответствующую строку в таблице, делать поиск текста (lookup) выделенного узла в таблице, а затем еще и поиск текста родительского узла. Неужели попроще никак нельзя? В общем надеюсь на подсказку. |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 24.10.2007
Сообщений: 254
|
![]()
Какая субд?
|
![]() |
![]() |
![]() |
#3 | |
Участник клуба
Регистрация: 07.07.2007
Сообщений: 1,518
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#4 | |
Пользователь
Регистрация: 15.08.2008
Сообщений: 12
|
![]()
База данных Paradox7.
Цитата:
![]() |
|
![]() |
![]() |
![]() |
#5 | |
Баламучу слегка...
Участник клуба
Регистрация: 01.11.2006
Сообщений: 1,585
|
![]() Цитата:
![]() Да, и DynamicTreeView лучше не трогай... Далековато ему еще до безглючной работы. |
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Одинаковые элементы | kodov | Общие вопросы Delphi | 3 | 11.08.2008 14:03 |
Почему на форуме нет ветки Пролог? | veter_s_morya | О форуме и сайтах клуба | 9 | 29.05.2008 18:35 |
Одинаковые строки | Македонский | Общие вопросы Delphi | 3 | 05.10.2007 14:40 |
изменение безопасности на ветки реестра | RIPPER | Безопасность, Шифрование | 3 | 22.11.2006 17:01 |