Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / FoxPro, Visual FoxPro Новый топик    Ответить
 Treeview и БД  [new]
SkyS
Member

Откуда: Не от мира сего
Сообщений: 667
Есть на форма компонент treeview и есть таблица
id,parent_id,naim

подскажите алгоритм построения дерева по этой таблице.


Не откладывай на завтра то что можно сделать послезавтра :)
17 фев 09, 10:56    [6827734]     Ответить | Цитировать Сообщить модератору
 Re: Treeview и БД  [new]
проходящий.
Guest
SkyS
Есть на форма компонент treeview и есть таблица
id,parent_id,naim

подскажите алгоритм построения дерева по этой таблице.

В Solutions не судьба посмотреть?
17 фев 09, 10:59    [6827752]     Ответить | Цитировать Сообщить модератору
 Re: Treeview и БД  [new]
SkyS
Member

Откуда: Не от мира сего
Сообщений: 667
проходящий.
SkyS
Есть на форма компонент treeview и есть таблица
id,parent_id,naim

подскажите алгоритм построения дерева по этой таблице.

В Solutions не судьба посмотреть?



а что такое Solutions ???
17 фев 09, 11:29    [6827948]     Ответить | Цитировать Сообщить модератору
 Re: Treeview и БД  [new]
проходящий.
Guest
SkyS
проходящий.
SkyS
Есть на форма компонент treeview и есть таблица
id,parent_id,naim

подскажите алгоритм построения дерева по этой таблице.

В Solutions не судьба посмотреть?



а что такое Solutions ???

Меню Tools->TaskPane
В верхней строке кнопка Solution
17 фев 09, 11:32    [6827978]     Ответить | Цитировать Сообщить модератору
 Re: Treeview и БД  [new]
Aleksey-K
Member

Откуда: Москва
Сообщений: 3116
SkyS
Есть на форма компонент treeview и есть таблица
id,parent_id,naim

подскажите алгоритм построения дерева по этой таблице.


Не откладывай на завтра то что можно сделать послезавтра :)

Присоединяюсь к "проходящему". В Solutions есть нормальный пример: ActiveX -> ActiveX Control -> Add and remove items in a treeview control
Ну еще можешь тут глянуть: http://vfox.kristall.ru/vfoxpro1.html
С уважением, Алексей
17 фев 09, 13:00    [6828653]     Ответить | Цитировать Сообщить модератору
 Re: Treeview и БД  [new]
flowy
Member

Откуда:
Сообщений: 27
проходящий.
SkyS
проходящий.
SkyS
Есть на форма компонент treeview и есть таблица
id,parent_id,naim

подскажите алгоритм построения дерева по этой таблице.

В Solutions не судьба посмотреть?



а что такое Solutions ???

Меню Tools->TaskPane
В верхней строке кнопка Solution

У меня в меню Tools нет TaskPane (VFP 6) может кто подскажет, где взять еще пример построения дерева?
11 авг 09, 13:26    [7522368]     Ответить | Цитировать Сообщить модератору
 Re: Treeview и БД  [new]
AleksMed
Member

Откуда: Россия, Серпухов-Москва
Сообщений: 1546
SkyS
Есть на форма компонент treeview и есть таблица
id,parent_id,naim

подскажите алгоритм построения дерева по этой таблице.


Не откладывай на завтра то что можно сделать послезавтра :)

Статья
11 авг 09, 13:34    [7522464]     Ответить | Цитировать Сообщить модератору
 Re: Treeview и БД  [new]
flowy
Member

Откуда:
Сообщений: 27
AleksMed
SkyS
Есть на форма компонент treeview и есть таблица
id,parent_id,naim

подскажите алгоритм построения дерева по этой таблице.


Не откладывай на завтра то что можно сделать послезавтра :)

Статья



Спасибо, эта статья у меня есть, но мне нужен именно пример, указанный автором темы
Сама использую рекурсивную процедуру, но что-то не получается населить дерево правильно
11 авг 09, 13:44    [7522570]     Ответить | Цитировать Сообщить модератору
 Re: Treeview и БД  [new]
Ffffffffffffff
Guest
В VFP8 есть solution.app. Лежит в корневой директории FoxPro. Там и пример.
11 авг 09, 14:12    [7522821]     Ответить | Цитировать Сообщить модератору
 Re: Treeview и БД  [new]
flowy
Member

Откуда:
Сообщений: 27
Ffffffffffffff
В VFP8 есть solution.app. Лежит в корневой директории FoxPro. Там и пример.

У меня к сожалению VFP 6. Поделитесь, плиз, VFP8
11 авг 09, 14:19    [7522884]     Ответить | Цитировать Сообщить модератору
 Re: Treeview и БД  [new]
Fffffffffffff
Guest
Не знаю, будет работать в 6-ке или нет.
См. файл.

К сообщению приложен файл (Form.rar - 7Kb) cкачать
11 авг 09, 14:33    [7522993]     Ответить | Цитировать Сообщить модератору
 Re: Treeview и БД  [new]
flowy
Member

Откуда:
Сообщений: 27
Скачала VFP8, там не открывается, говорит нет Solution файла
Может есть у кого VFP 8 с файлом Solution?
11 авг 09, 15:11    [7523337]     Ответить | Цитировать Сообщить модератору
 Re: Treeview и БД  [new]
ВладимирМ
Member

Откуда: г. Москва
Сообщений: 7864
На сайте Microsoft есть примеры

Visual FoxPro 6.0 Sample: Demonstrates the TreeView Control
Visual FoxPro 6.0 Sample: Demonstrates the ListView Control
11 авг 09, 19:23    [7524871]     Ответить | Цитировать Сообщить модератору
 Re: Treeview и БД  [new]
flowy
Member

Откуда:
Сообщений: 27
Так и не нашла нужного примера... :(
Я хотя бы с рекурсией права, или можно как-то обойтись без нее?
11 авг 09, 20:27    [7525010]     Ответить | Цитировать Сообщить модератору
 Re: Treeview и БД  [new]
Aleksey-K
Member

Откуда: Москва
Сообщений: 3116
flowy
Так и не нашла нужного примера... :(
Я хотя бы с рекурсией права, или можно как-то обойтись без нее?

Можно добавить в таблицу поле Level - глубина вложения относительно корня. Тогда при сортировки таблицы по этому полю, можно смело "строить дерево", формирую Key из id, а Parent из parent_id
Также для построения дерева от ПРОИЗВОЛНОГО узла (записи таблицы) можно использовать алгоритм стэка.
С уважением, Алексей.
12 авг 09, 09:43    [7525985]     Ответить | Цитировать Сообщить модератору
 Re: Treeview и БД  [new]
ВладимирМ
Member

Откуда: г. Москва
Сообщений: 7864
flowy
Я хотя бы с рекурсией права, или можно как-то обойтись без нее?

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

Стратегия обычно такая:

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

2. Когда пользователь раскрывает узел дерева (срабатывает событие Node.Expand()) фиктивный узел удаляется и строится очередной уровень. Но только у данного родителя и опять же с фиктивными узлами. Если фиктивного узал нет, значит построение уровня уже произошло. Повторно запускать его не надо.


Если требуется поиск, то он выполняется не по дереву, а в самих исходных данных с последующим построением недостающих элементов для отображения результатов поиска.
12 авг 09, 15:11    [7528495]     Ответить | Цитировать Сообщить модератору
Все форумы / FoxPro, Visual FoxPro Ответить