powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / выбор элементов дерева - есть готовое решение?
8 сообщений из 8, страница 1 из 1
выбор элементов дерева - есть готовое решение?
    #40057632
GrigoriyFomin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть каталог товаров с древовидной группировкой по типу товара (например:
-напитки,
--соки
--кофе
--чай
-блюда
--горячие
---первые
---вторые
--холодные
---салаты
---гарниры

Дерево хранится отдельно в виде ID, ParentID и название., у товара есть только ИД на нужную ветку товарного дерева (например, ИД ветки первые-горячие-блюда).
Может есть универсальное отлаженное решение как например, выбрать все товары нужной группировки? То есть есть некое дерево TreeView с галочками (множественный выбор), и таблица со списком товаров. Мы выбираем галочками нужные ветки (причем не только "листья", но и "ветки") и в таблицу попадают все товары, которые относятся к этим и всем потомкам ВЫБРАННЫХ элементов дерева. Понятно, что можно делать все с нуля - отслеживать появление/снятие галочки, рекурсивный перебор всех веток дерева и сборка строки для WHERE условия фильтрации. Но может есть более готовое и доступное решение? Задача-то типовая.
...
Рейтинг: 0 / 0
выбор элементов дерева - есть готовое решение?
    #40057634
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TTreeView
TVirtualTreeView
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
выбор элементов дерева - есть готовое решение?
    #40058080
alexl06
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
XPCheckTreeView
...
Рейтинг: 0 / 0
выбор элементов дерева - есть готовое решение?
    #40058081
alexl06
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Напиши мне на почту, поделюсь
...
Рейтинг: 0 / 0
выбор элементов дерева - есть готовое решение?
    #40058082
L_argo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все готовые решения будут унылы и с большими ограничениями.
Ловите момент установки галочки и добавляйте во временную таблицу ИД товаров, которых там еще нет.
...
Рейтинг: 0 / 0
выбор элементов дерева - есть готовое решение?
    #40058154
DesWind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GrigoriyFomin,

Можно разделить ID на битовые поля, 110000 корневой элемент 111100 - ветка от корневого элемента 110000, 111111 - лист.

Это естественно накладывает ограничение на кол-во и вложенность. Но в некоторых случаях может помочь. Т.е. смысл битовых полей - можно по любому ID отследить всю цепочку дерева.
...
Рейтинг: 0 / 0
выбор элементов дерева - есть готовое решение?
    #40058163
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DesWind
GrigoriyFomin,

Можно разделить ID на битовые поля, 110000 корневой элемент 111100 - ветка от корневого элемента 110000, 111111 - лист.

Это естественно накладывает ограничение на кол-во и вложенность. Но в некоторых случаях может помочь. Т.е. смысл битовых полей - можно по любому ID отследить всю цепочку дерева.
Для чего эта цепочка? Если для того, чтобы отображать справа список товаров, входящих в текущую и все дочерние группы - так для этого надо просто при клике на элемент дерева через CTE получить плоский список этих групп (либо заблаговременно его получить для каждой группы, для скорости), и запрос товаров делать с фильтром group in (этот список).
...
Рейтинг: 0 / 0
выбор элементов дерева - есть готовое решение?
    #40058224
DesWind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
YuRock,

Я просто предложил решение поставленной задачи. Как выбрать ветку целиком с простым условием.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / выбор элементов дерева - есть готовое решение?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]