powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / ctTree узлы и дети
7 сообщений из 7, страница 1 из 1
ctTree узлы и дети
    #36278711
xvictor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите как перебрать всех деток узла в ctTree
...
Рейтинг: 0 / 0
ctTree узлы и дети
    #36278806
LUCIAN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
xvictor,
Код,который выбирает деталь4 и всех её деток
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
CREATE CURSOR tree (det_id i, parent_id i, name c( 10 ))    
    INSERT INTO tree VALUES ( 1 , 0 ,'Деталь1')    
    INSERT INTO tree VALUES ( 2 , 0 ,'Деталь2')    
    INSERT INTO tree VALUES ( 3 , 2 ,'Деталь3')    
    INSERT INTO tree VALUES ( 4 , 2 ,'Деталь4')    
    INSERT INTO tree VALUES ( 5 , 4 ,'Деталь5')    
    INSERT INTO tree VALUES ( 6 , 4 ,'Деталь6')    
    INSERT INTO tree VALUES ( 7 , 5 ,'Деталь7')  
     
  SELECT  * FROM TREE  WHERE  det_id= 4  INTO CURSOR CTR  
  SELECT  * FROM TREE  WHERE  det_id= 4  INTO CURSOR CTRU  
  KZ=_TALLY  
  DO WHILE KZ> 0   
  	SELECT TREE.* FROM TREE,CTR WHERE CTR.det_id=TREE.parent_id INTO CURSOR CTR  
  	KZ=_TALLY  
  	SELECT * FROM CTRU UNION ALL SELECT * FROM CTR INTO CURSOR CTRU  
  ENDDO  
   SELECT ctru
   brow

...
Рейтинг: 0 / 0
ctTree узлы и дети
    #36278841
LUCIAN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
LUCIAN,
Код,который выбирает всех деток деталь4
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
CREATE CURSOR tree (det_id i, parent_id i, name c( 10 ))    
    INSERT INTO tree VALUES ( 1 , 0 ,'Деталь1')    
    INSERT INTO tree VALUES ( 2 , 0 ,'Деталь2')    
    INSERT INTO tree VALUES ( 3 , 2 ,'Деталь3')    
    INSERT INTO tree VALUES ( 4 , 2 ,'Деталь4')    
    INSERT INTO tree VALUES ( 5 , 4 ,'Деталь5')    
    INSERT INTO tree VALUES ( 6 , 4 ,'Деталь6')    
    INSERT INTO tree VALUES ( 7 , 5 ,'Деталь7')  
     
  SELECT  * FROM TREE  WHERE  det_id= 4  INTO CURSOR CTR  
  SELECT  * FROM TREE  WHERE  det_id= 4  INTO CURSOR CTRU  
  KZ=_TALLY  
  DO WHILE KZ> 0   
  	SELECT TREE.* FROM TREE,CTR WHERE CTR.det_id=TREE.parent_id INTO CURSOR CTR  
  	KZ=_TALLY  
  	SELECT * FROM CTRU UNION ALL SELECT * FROM CTR INTO CURSOR CTRU  
  ENDDO  
  SELECT * FROM CTRU where det_id# 4  INTO CURSOR CTRU  
 
   SELECT ctru
   brow
...
Рейтинг: 0 / 0
ctTree узлы и дети
    #36279362
xvictor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И где же здесь перебор в дереве?
...
Рейтинг: 0 / 0
ctTree узлы и дети
    #36279511
Березовский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xvictor, проверить сейчас нет времени.. глянул у себя в проекте
метод удаления детей.. помотрите может натолкнет на что.
Чуть поздней гляну


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
*** ActiveX Control Method ***
LPARAMETERS nindex
NODEFAULT 
lnChildren_count = This.AllChildren(nIndex)
IF lnChildren_count !=  0  THEN 
	*  ЕСТЬ ДЕТИ
	FOR i =  1  TO lnChildren_count
		* УДАЛЯТЬ НАЧИНАЕМ С ПОСЛЕДНЕГО РЕБЕНКА
		lnChildren_index = nIndex + lnChildren_count +  1  - i
		IF This.Children(lnChildren_index) =  0  THEN 
			* ЕСЛИ У ЗАПИСИ НЕТ ДЕТЕЙ, ТО УДАЛЯЕМ ЕЕ
			This.RemoveNode(lnChildren_index)
		ELSE 
			* ЕСТЬ ДЕТИ, ЗНАЧИТ СНАЧАЛА УДАЛЯЕМ ДЕТЕЙ
			This.RemoveChildren(lnChildren_index)
		ENDIF 
	NEXT 
ENDIF 
...
Рейтинг: 0 / 0
ctTree узлы и дети
    #36284614
Beresnev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
LPARAMETERS nindex
LOCAL lnIndex
WITH THISFORM.oleCttree
   IF .ListCount >  0 
      FOR lnIndex =  0  TO .ListCount -  1 
         IF .NodeParent(lnIndex) = nindex
            *!* Узел с номером lnIndex является дочерним по отношению к узлу с номером nindex
         ENDIF
      ENDFOR
   ENDIF
ENDWITH
Можно навернуть еще и проверку .NodeIsParent(nindex) - является ли nindex-узел родительским.
...
Рейтинг: 0 / 0
ctTree узлы и дети
    #36284616
Beresnev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
LPARAMETERS nindex
LOCAL lnIndex
WITH THISFORM.oleCttree
   IF .ListCount >  0 
      FOR lnIndex =  0  TO .ListCount -  1 
         IF .NodeParent(lnIndex) = nindex
            *!* Узел с номером lnIndex является дочерним по отношению к узлу с номером nindex
         ENDIF
      ENDFOR
   ENDIF
ENDWITH
Можно навернуть еще и проверку .NodeIsParent(nindex) - является ли nindex-узел родительским.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / ctTree узлы и дети
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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