Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Adv TreeView

8.2K
14 ноября 2005 года
ReSearcher
19 / / 12.11.2005
Содержимое нормализованной БД мне необходимо выводить в виде дерева.
Надо бы чтоб по умолчанию у каждой ноды выводился плюсик слева (что мол её можно разворачивать) и только после щелчка по ноде проверялось, а есть ли на самом деле записи в подчинённых таблицах. Такое поведение у Tree стандартного эксплорера Windows.

Прийдётся наверное рисовать самому ноды.

А другие варианты есть?
Подскажите pls.
585
14 ноября 2005 года
honeybeer
297 / / 06.09.2004
Цитата:
Originally posted by ReSearcher
Содержимое нормализованной БД мне необходимо выводить в виде дерева.
Надо бы чтоб по умолчанию у каждой ноды выводился плюсик слева (что мол её можно разворачивать) и только после щелчка по ноде проверялось, а есть ли на самом деле записи в подчинённых таблицах. Такое поведение у Tree стандартного эксплорера Windows.

Прийдётся наверное рисовать самому ноды.

А другие варианты есть?
Подскажите pls.


Я не совсем понял, что мешает это сделать?

1
14 ноября 2005 года
kot_
7.3K / / 20.01.2000
Цитата:
Originally posted by ReSearcher
Содержимое нормализованной БД мне необходимо выводить в виде дерева.
Надо бы чтоб по умолчанию у каждой ноды выводился плюсик слева (что мол её можно разворачивать) и только после щелчка по ноде проверялось, а есть ли на самом деле записи в подчинённых таблицах. Такое поведение у Tree стандартного эксплорера Windows.

Прийдётся наверное рисовать самому ноды.

А другие варианты есть?
Подскажите pls.


Есть набор компонентов в котором вроде как этот функционал присутствует. Поларис кажется. Я лично с ним не работал, один из моих подчиненых, пытался их задействовать, патчил - вроде чего-то получилось. Но в большинстве задач вполне достаточно работать со стандартным тривью, обширное дерево из базы - ИМХО неверное решение в большинстве задач.
Но это подчеркиваю ИМХО и к теме не относится :)

8.2K
14 ноября 2005 года
ReSearcher
19 / / 12.11.2005
Цитата:
Originally posted by kot_
обширное дерево из базы - ИМХО неверное решение в большинстве задач.
Но это подчеркиваю ИМХО и к теме не относится :)


На первый взгляд - да.
Но мне в новый версии прикладной проги это, по задумке, должно обеспечить интуитивно понятную навигацию по сложной структуре данных.
Самые большие опасения конечно в вопросе: каких такой подход накладных расходов потребует.
Потому и возник вопрос. Надо чтобы данные в ветки подкачивались по мере их разворачивания. Сразу данные в дерево не закачаешь - ни ресурсов, ни терпения ждать кэширование не хватит, и многопользовательская работа однако. Даже хитрей: все операции с данными инкапсулирует движок, при необходимости его работа логится и синхронизируется с визуальным деревом.

Просто с OnCustomDrawItem я никогда не связывался. В принципе в борланде есть пример CustomDraw, но какие же там линии дерева и кнопки +/- страшные. Прийдётся видно косить под мелкософт и пытаться по человечески отрисовать эти линии?

1
15 ноября 2005 года
kot_
7.3K / / 20.01.2000
Цитата:
Originally posted by ReSearcher
На первый взгляд - да.
Но мне в новый версии прикладной проги это, по задумке, должно обеспечить интуитивно понятную навигацию по сложной структуре данных.
Самые большие опасения конечно в вопросе: каких такой подход накладных расходов потребует.
Потому и возник вопрос. Надо чтобы данные в ветки подкачивались по мере их разворачивания. Сразу данные в дерево не закачаешь - ни ресурсов, ни терпения ждать кэширование не хватит, и многопользовательская работа однако. Даже хитрей: все операции с данными инкапсулирует движок, при необходимости его работа логится и синхронизируется с визуальным деревом.

Просто с OnCustomDrawItem я никогда не связывался. В принципе в борланде есть пример CustomDraw, но какие же там линии дерева и кнопки +/- страшные. Прийдётся видно косить под мелкософт и пытаться по человечески отрисовать эти линии?


В большинстве случаев, все зависит от количиства ветвей - не всегда рациональным(ИМХО в большинстве случаев) является загрузка данных по мере разворачивания ветвей. Особенно это относится к сетевым приложениям. Как правило, наиболее эффективно загрузить данные отдельным потоком в процессе инициализации приложения и работать с локальной копией в памяти. Как правило затраты на загрузку, синхронизацию с кликом по дереву, элементы предсказания переходов и пр. по ресурсам сравнимы с одномоментным формированием дерева из датасета на основе ХП. А скорость работы с приложением отличается и иногда на пару порядков. + к тому, постоянный коннект к базе, тоже имхо не лучшее в этой жизни. Хотя существуют ситуации когда выгоднее грузить данные в момент разворачивания ветви. Кстати, TheBat! - интересно как у них реализовано? Думаю, в зависимости от объема.
А с отрисовкой ничего в принципе страшного нет. Главное в ветвях не запутаться :)

294
16 ноября 2005 года
Plisteron
982 / / 29.08.2003
Цитата:
Originally posted by ReSearcher
Содержимое нормализованной БД мне необходимо выводить в виде дерева.
Надо бы чтоб по умолчанию у каждой ноды выводился плюсик слева (что мол её можно разворачивать) и только после щелчка по ноде проверялось, а есть ли на самом деле записи в подчинённых таблицах. Такое поведение у Tree стандартного эксплорера Windows.

Прийдётся наверное рисовать самому ноды.

А другие варианты есть?
Подскажите pls.


Если я правильно понял вопрос, то для отрисовки нодов подойдёт EHLib.
Данные в ноды, имхо, лучше грузить в момент разворачивания нода.

Цитата:
Originally posted by kot_
А скорость работы с приложением отличается и иногда на пару порядков. + к тому, постоянный коннект к базе, тоже имхо не лучшее в этой жизни.


Позвольте с Вами не согласиться. Хотя, конечно, смотря какая СУБД. У меня основная СУБД -- Oracle. Ей практически всё равно, сколько пользователей подключено и как долго продолжается сессия. А оптимизацию экземпляра и базы данных (и мониторинг) гораздо проще проводить, скажем, на тысяче длинных сессий, нежели на миллионе коротких.

8.2K
18 ноября 2005 года
ReSearcher
19 / / 12.11.2005
Спасибо всем.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог