Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / TreeView. Заполнять ноды по запросу. / 8 сообщений из 8, страница 1 из 1
03.05.2020, 10:23
    #39953830
_Sergio2005_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TreeView. Заполнять ноды по запросу.
Добрый день.
Большой набор данных нужно загнать в TreeView (common controls 6.0 (sp 6)). В результате, при заполнении TreeView приходится долго ждать.

Для более удобной работы с TreeView вижу два пути решения проблемы.
1. Заменить данный контрол TreeView на другой, поддерживающий свойство PopulateOnDemand (заполнение по запросу).
2 Контрол «common controls 6.0 (sp 6)» заполнять выборочно, посредством добавления узлов в узел-контейнер при нажатие на плюсик разворачивающий данный контейнер. Но что то не могу найти событие «нажатие на плюсик».

Подскажите. Либо какой то иной контрол TreeView. Не «common controls 6.0 (sp 6)» а с поддержкой заполнения по запросу. Либо как зовется событие в «common controls 6.0 (sp 6)» возникающее при нажатие на плюсик.

Спасибо.
...
Рейтинг: 0 / 0
03.05.2020, 11:10
    #39953832
_Sergio2005_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TreeView. Заполнять ноды по запросу.
Все разобрался
...
Рейтинг: 0 / 0
07.05.2020, 20:12
    #39955086
Serg197311
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TreeView. Заполнять ноды по запросу.
зовется событие в «common controls 6.0 (sp 6)» возникающее при нажатие на плюсик.

.expand
ну так, может не до конца разобрался))
...
Рейтинг: 0 / 0
07.05.2020, 20:55
    #39955096
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TreeView. Заполнять ноды по запросу.
Serg197311, давненько я не работал с этим контролом...
Заполнение идёт либо на событие ЛКМ, либо на нажатие определённых клавиш (стрелок, энтер и пр). Рассмотрим только клик мыши.
На событие ЛКМ определяется область куда кликнул пользователь - лейбл, плюсик или ещё куда (так-то есть такая возможность)... Если в плюсик, то заполняешь новую ветвь и разворачиваешь. Да, нужно ещё не забыть нарисовать плюсики где должны быть скрытые ветви. Сделать это можно либо добавляя фейковую ноду (не забыть её потом убрать!), либо через API дать команду ноде отобразить плюсик (и так можно).
Как-то так... Примеров готовых под рукой нет, уж извини.
...
Рейтинг: 0 / 0
07.05.2020, 20:57
    #39955098
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TreeView. Заполнять ноды по запросу.
Городить этот огород стоит если много данных, ну или очень хочется. Работает шустро.
...
Рейтинг: 0 / 0
16.05.2020, 23:24
    #39958491
Программист-Любитель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TreeView. Заполнять ноды по запросу.
Заполнить дерево более чем просто.

Можно тупо на каждом узле открывать рекордсет для вытаскивания его потомков. Если узлов много, в разы быстрее будет открыть один раз полный рекордсет и для очередного узла делать ему фильтр.

Фокус в том, что тривью наглядно показывает иерархические связи, но особенно удобно и эффективно оно будет если:
* Для КАЖДОГО узла справа от тривью выводить форму-карточку текущего узла (передергивая вложенную субформу)
* На этой карточке иметь нормальные редактируемые поля для свойств поля и вложенный грид для ввода дочерних узлов

Тогда можно все дерево можно заполнить не выходя за пределы одной формы.
...
Рейтинг: 0 / 0
25.05.2020, 06:42
    #39961514
Serg197311
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TreeView. Заполнять ноды по запросу.
А кстати что значит - большой объем данных? У меня примерно 7000 поз - разворачивается за 3 сек
...
Рейтинг: 0 / 0
25.05.2020, 09:24
    #39961534
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TreeView. Заполнять ноды по запросу.
Serg197311
А кстати что значит - большой объем данных?
это каждый решает сам.
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / TreeView. Заполнять ноды по запросу. / 8 сообщений из 8, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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