|
22 / 4 / 1
Регистрация: 25.03.2012
Сообщений: 199
|
||||||
RAD XE3+ Вывод данных с базы данных в TreeView01.06.2022, 20:35. Показов 1572. Ответов 15
Метки нет (Все метки)
Прошу помочь с выводом данных, с большим разветвлением, в TreeView
Перепробовал многие варианты, и все не то. Привожу 2 фото. Одно, это исходник, как должна выглядеть TreeView Второе фото, таблица из SQL, для понимания как сохранены данные в БД. Вот ее схема: (@id int, @NashaKompaniua_id int, @TipDogovora_id int, @SrokDeistviua_id int, @NameRazdela nchar(200), @NomerRazdela nchar(10), @Text_Razdela text, @id_ImageIndex int) Вот один из многих вариантов, не верный. Дерево прорисовывается не правильно. Не могу правильно вывести детей
0
|
||||||
| 01.06.2022, 20:35 | |
|
Ответы с готовыми решениями:
15
|
|
408 / 242 / 88
Регистрация: 28.04.2022
Сообщений: 1,207
|
|
| 01.06.2022, 21:15 | |
Сообщение было отмечено kabachok как решение
Решение
У вас неправильная концепция. Сделайте два поля: ID и ParentID. ID - собственный идентификатор элемента в иерархии (это поле у вас есть). ParentID - идентификатор родителя, т.е. вышестоящего узла. Если ParentID IS NULL, тогда это root. Далее по этим идентификаторам строятся ветки. В момент раскрытия узла (по соответствующему событию) делаем запрос на выборку всех дочек этого узла и создаём дочерние элементы.
1
|
|
|
|
|
| 01.06.2022, 21:18 | |
|
в задачах такого рода есть один правильный ответ
методология если у вас простыня кода 8 экранов а) работать не будет б) починить невозможно в) никто не возьмется вникать что там у вас г, д, е ... и т.д. вам нужно представить, что все данные у вас уже на руках каким-то образом и теперь нужно сделать методы 1) отдельный метод для заполнения каждого возможного типа узла 2) главный метод, который определяет, что за тип данных у вас на этом произвольно взятом узле и запускает один из методов из п.1 далее применить главный метод рекурсивно для каждого узла в КОРНЕВОМ списке Добавлено через 27 секунд ну и полностью поддержу то что написал Gluck99,
0
|
|
|
22 / 4 / 1
Регистрация: 25.03.2012
Сообщений: 199
|
|
| 01.06.2022, 21:28 [ТС] | |
|
Надеюсь, что мысль понял.
То есть, на каждую ветку делаю отдельный SQL- запрос? ParentID, добавлю. Спасибо, буду пробовать.
0
|
|
|
408 / 242 / 88
Регистрация: 28.04.2022
Сообщений: 1,207
|
||
| 01.06.2022, 21:52 | ||
|
1) выбрать всех root'ов, т.е. те записи, у которых ParentID IS NULL. Создать их в treeview. 2) выбрать всех дочек конкретного родителя (узла) по клику мышкой на этом узле. Тут, правда, придётся немного попотеть. Во-первых, надо будет создать поле в treeview для хранения ID элемента в БД, иначе непонятно как формировать запрос. Во-вторых, мало создать элемент, надо создать его с возможностью раскрытия [+], если он сам содержит дочек, или наоборот, если не содержит, то без знака [+]. В принципе, эту проверку можно добавить в запрос и создавать пустую дочку, если элемент содержит другие элементы.
0
|
||
|
408 / 242 / 88
Регистрация: 28.04.2022
Сообщений: 1,207
|
|
| 02.06.2022, 12:58 | |
|
К тому же есть готовые DBTreeView, практически только ID подставить.
0
|
|
|
22 / 4 / 1
Регистрация: 25.03.2012
Сообщений: 199
|
|||||||
| 13.06.2022, 10:47 [ТС] | |||||||
|
Gluck99, Прошу помощи.
0
|
|||||||
|
3763 / 2267 / 705
Регистрация: 29.05.2013
Сообщений: 9,622
|
|
| 13.06.2022, 13:26 | |
|
0
|
|
|
22 / 4 / 1
Регистрация: 25.03.2012
Сообщений: 199
|
|||||||||||
| 05.12.2022, 22:39 [ТС] | |||||||||||
|
Прошу помощи
Вывожу данные из базы данных в TreeView Первым делом создаю все Root С помощью OnExpanding, загружаю Node При многократном закрытии/открытии Node, дети повторяют. Что нужно сделать, чтобы не было повторов? Вот код:
0
|
|||||||||||
|
22 / 4 / 1
Регистрация: 25.03.2012
Сообщений: 199
|
|
| 05.12.2022, 23:00 [ТС] | |
|
К сожалению я не умею пользоваться отладкой, пошаговой трассировкой
0
|
|
|
Модератор
4115 / 2347 / 807
Регистрация: 15.11.2015
Сообщений: 9,339
|
||
| 05.12.2022, 23:52 | ||
|
0
|
||
|
803 / 419 / 36
Регистрация: 05.05.2022
Сообщений: 2,911
|
|||
| 06.12.2022, 00:30 | |||
|
А если нажать F4, то выполнение будет идти до позиции курсора.
Написать даже простейшую программу без трассировки не-воз-мож-но. Загрузить данные в дерево, тем более.
0
|
|||
|
пофигист широкого профиля
4769 / 3204 / 862
Регистрация: 15.07.2013
Сообщений: 18,609
|
|||
| 06.12.2022, 01:59 | |||
|
0
|
|||
|
22 / 4 / 1
Регистрация: 25.03.2012
Сообщений: 199
|
|
| 10.12.2022, 00:28 [ТС] | |
|
Спасибо, что заставили научиться работать с отладкой. В принципе, все понятно.
Проблему дубляжа, решил.
0
|
|
| 10.12.2022, 00:28 | |
|
Помогаю со студенческими работами здесь
16
Не получается осуществить вывод данных товаров из базы данных через цикл for Вывод данных из базы данных MySQL в PHP в виде дерева. Xamarin android C#. Вывод данных из таблицы базы данных phpMyAdmin Вывод данных из таблицы базы данных на View в проекте MVC
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Рецензия / Мнение/ Перевод
https:/ / **********/ gallery/ thinkpad-x220-tablet-porn-gzoEAjs
. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|