Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как перебрать дочерние узлы определённого Item / 8 сообщений из 8, страница 1 из 1
15.05.2007, 20:46
    #34527570
shanton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как перебрать дочерние узлы определённого Item
Нужно перебрать все дочерние узлы определённого item в treeview, или только корневые дочерние узлы. Огромное спасибо!
...
Рейтинг: 0 / 0
15.05.2007, 21:36
    #34527643
Aleksey-K
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как перебрать дочерние узлы определённого Item
Алгоритмов много: рекурсия, стек, запрос с JOIN к промежуточной таблицы...
Многократно обсуждалось на этом форуме, ищите. Если не найдете, то приведу свой.
С уважением, Алексей.
...
Рейтинг: 0 / 0
15.05.2007, 22:23
    #34527695
shanton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как перебрать дочерние узлы определённого Item
Вот что-то нашол:
LPARAMETERS node

LOCAL loChildNode
loChildNode = node.Child

FOR nI=1 TO node.Children
IF nI>1
loChildNode=loChildNode.Next
ENDIF
ENDFOR

должно работать.
...
Рейтинг: 0 / 0
16.05.2007, 07:35
    #34527957
Aleksey-K
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как перебрать дочерние узлы определённого Item
shantonВот что-то нашол:
LPARAMETERS node

LOCAL loChildNode
loChildNode = node.Child

FOR nI=1 TO node.Children
IF nI>1
loChildNode=loChildNode.Next
ENDIF
ENDFOR

должно работать.
А вы проверьте, КАК это будет работать. Особенно с "деревом" более 2-х уровней.
С уважением, Алексей.
...
Рейтинг: 0 / 0
16.05.2007, 09:26
    #34528095
shanton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как перебрать дочерние узлы определённого Item
Проверил, уровней придостаточно (дерево отображает структуру изделия - трансформатор), результатом доволен.
...
Рейтинг: 0 / 0
16.05.2007, 11:32
    #34528535
Guest11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как перебрать дочерние узлы определённого Item
А IF тут к чему?

Не проще ли

Код: plaintext
1.
2.
3.
4.
5.
6.
LOCAL loChildNode
loChildNode = node.Child

DO WHILE NOT ISNULL(loChildNode)
  ...
  loChildNode=loChildNode.Next
ENDDO
...
Рейтинг: 0 / 0
16.05.2007, 12:00
    #34528677
Aleksey-K
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как перебрать дочерние узлы определённого Item
А все-так проверьте результат!
Метод Next у Node переходит на следующий Node ДАННОГО уровня. Т.е. этим способом вы НЕ МОЖЕТЕ найти ВСЕ подчиненные Nodes данного Node, а только те, которые находятся на ПЕРВОМ уровне вложения!
С уважением, Алексей
...
Рейтинг: 0 / 0
16.05.2007, 14:59
    #34529477
shanton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как перебрать дочерние узлы определённого Item
автор Guest11LOCAL loChildNode
loChildNode = node.Child

DO WHILE NOT ISNULL(loChildNode)
...
loChildNode=loChildNode.Next
ENDDO

можна и так, согласен.

автор Aleksey-K Метод Next у Node переходит на следующий Node ДАННОГО уровня.

Мне это известно, задача именно так и стояла - только ДАННОГО УРОВНЯ. Конечно, чтобы перебратать все дочерние подуровни такой подход не годится. Пока такое делать не приходилось, когдато наверное придётся. Если решение есть под рукой, поделитесь, буду очень благодарен.
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как перебрать дочерние узлы определённого Item / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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