powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Запрос на выбор потдерева из дерева на FOX PRO 6.0
18 сообщений из 43, страница 2 из 2
Запрос на выбор потдерева из дерева на FOX PRO 6.0
    #34216585
Jevgeniy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
to __Владимир__ Действительно. Результат отображает, но почемуто при открытии tmpTable отображает ПРАВИЛЬНОЕ количество записей. Но в итоге получаются пустые записи. в числовых полях - 0 в текстовых - пусто.

to Jura.K
Получается несоответствие типов в этой строке: IF ID=m.lcID
Хотя по идее все правильно. В таблице __client ID, PID типа Integer (пробовал numeric, но эффекта никакого)

В варианте с
Код: plaintext
INSERT INTO tmpTable (ID, PID, LEVEL, NAME ) SELECT ID, PID, LEVEL, NAME FROM __client WHERE ID=m.lcID
Синтаксическая ошибка на SELECT ID, PID, LEVEL, NAME

to NSFuimus
К сожалению ничего не подходит. т.к. дерево не бинарное и использование полей left и right невозможно.


Прикрепленный файл - то что получилось с вариантом __Владимир__'a
...
Рейтинг: 0 / 0
Запрос на выбор потдерева из дерева на FOX PRO 6.0
    #34216703
Jura.K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Елы палы, что то я тоже затормозил
надо первоначально присваивать переменной lcID в Вашем случае не строку, а число, раз оно у Вас имеет тип INT

Код: plaintext
1.
LOCAL lcID
lcID= 1  
...
Рейтинг: 0 / 0
Запрос на выбор потдерева из дерева на FOX PRO 6.0
    #34216740
Jevgeniy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, после этого пропала ошибка преобразования типов, но синтаксическая - осталась :(
...
Рейтинг: 0 / 0
Запрос на выбор потдерева из дерева на FOX PRO 6.0
    #34216797
Jura.K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В каком месте осталась покажите

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
CREATE CURSOR tmpTable (ID INT, PID INT, LEVEL INT, NAME C( 100 ))
LOCAL ARRAY laID( 1 , 1 )
LOCAL lcID
lcID= 1  
SELECT __client 
DO WHILE !EMPTY(m.lcID)
             SCAN  
                      IF ID=m.lcID
             	INSERT INTO tmpTable (ID, PID, LEVEL, NAME) ;
                          VALUES ( __client.ID, __client.PID, __client.LEVEL, __client.NAME) 
                      ENDIF 
             ENDSCAN 
	SELECT ID FROM __client WHERE PID=m.lcID INTO ARRAY laID
	m.lcID=IIF(_tally> 0 ,laID( 1 , 1 ),'')
ENDDO  
...
Рейтинг: 0 / 0
Запрос на выбор потдерева из дерева на FOX PRO 6.0
    #34216854
Jevgeniy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
CREATE CURSOR tmpTable (ID INT, PID INT, LEVEL INT, NAME C( 100 ))
 
LOCAL ARRAY laID( 1 , 1 )
LOCAL lcID
lcID= 1 
DO WHILE !EMPTY(m.lcID)
	INSERT INTO tmpTable (ID, PID, LEVEL, NAME ) SELECT ID, PID, LEVEL, NAME FROM __client WHERE ID=m.lcID&&<--syntax error
	SELECT ID FROM __client WHERE PID=m.lcID INTO ARRAY laID
	m.lcID=IIF(_tally> 0 ,laID( 1 , 1 ),'')
ENDDO

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
CREATE CURSOR tmpTable (ID INT, PID INT, LEVEL INT, NAME C( 100 ))
 
LOCAL ARRAY laID( 1 , 1 )
LOCAL lcID
lcID= 1 
DO WHILE !EMPTY(m.lcID)
	INSERT INTO tmpTable (ID, PID, LEVEL, NAME );
	 SELECT ID, PID, LEVEL, NAME; &&<--syntax error
	  FROM __client WHERE ID=m.lcID
	SELECT ID FROM __client WHERE PID=m.lcID INTO ARRAY laID
	m.lcID=IIF(_tally> 0 ,laID( 1 , 1 ),'')
ENDDO
...
Рейтинг: 0 / 0
Запрос на выбор потдерева из дерева на FOX PRO 6.0
    #34216948
Jura.K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Значит ваша версия фокса не поддерживает такую инструкцию используйте следующий вариант

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
CREATE CURSOR tmpTable (ID INT, PID INT, LEVEL INT, NAME C( 100 ))
LOCAL ARRAY laID( 1 , 1 )
LOCAL lcID
lcID= 1  
SELECT __client 
DO WHILE !EMPTY(m.lcID)
             SCAN  
                      IF ID=m.lcID
             	INSERT INTO tmpTable (ID, PID, LEVEL, NAME) ;
                          VALUES ( __client.ID, __client.PID, __client.LEVEL, __client.NAME) 
                      ENDIF 
             ENDSCAN 
	SELECT ID FROM __client WHERE PID=m.lcID INTO ARRAY laID
	m.lcID=IIF(_tally> 0 ,laID( 1 , 1 ),'')
ENDDO  

или что еще лучше вариант с индексом будет значительно быстрее

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
CREATE CURSOR tmpTable (ID INT, PID INT, LEVEL INT, NAME C( 100 ))
LOCAL ARRAY laID( 1 , 1 )
LOCAL lcID
lcID= 1 
SELECT __client 
INDEX ON ID TAG ID
SET ORDER TO ID
DO WHILE !EMPTY(m.lcID)
             IF SEEK(m.lcID)
                  DO WHILE ID=m.lcID
             	INSERT INTO tmpTable (ID, PID, LEVEL, NAME) ;
                          VALUES ( __client.ID, __client.PID, __client.LEVEL, __client.NAME) 
                   SKIP 
                   ENDDO 
             ENDIF 
	SELECT ID FROM __client WHERE PID=m.lcID INTO ARRAY laID
	m.lcID=IIF(_tally> 0 ,laID( 1 , 1 ),'')
ENDDO  
...
Рейтинг: 0 / 0
Запрос на выбор потдерева из дерева на FOX PRO 6.0
    #34217022
Jevgeniy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
К сожалению этот вариант не подходит.
В tmpTable помещается сам клиент (по ID которому отбираем, что хорошо), и не все потомки. Тестировал при такой структуре и получил следующие результаты:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
 1 
______________
|  |   |  |  |  |  |
 2    3    4    5    6    7    8 
        /\
        9   11 
       |
       10 
При lcID=1 я получил:
Код: plaintext
1.
2.
3.
ID       PID     LEVEL
 1           0            1 
 2           1            2 
При lcID=5 я получил:
Код: plaintext
1.
2.
3.
4.
ID       PID     LEVEL
 5           1            2 
 9           5            3 
 10          9            4  
Поле NAME убрал, т.к. там с ним была ошибка (variable NAME is not found)
Код: plaintext
1.
2.
INSERT INTO tmpTable (ID, PID, LEVEL, NAME) ;
                          VALUES ( __client.ID, __client.PID, __client.LEVEL, __client.NAME) 
...
Рейтинг: 0 / 0
Запрос на выбор потдерева из дерева на FOX PRO 6.0
    #34217069
Jura.K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если не против подождать до завтра, то завтра предложу вариант который будет выбирать всех потомков
...
Рейтинг: 0 / 0
Запрос на выбор потдерева из дерева на FOX PRO 6.0
    #34217119
Jevgeniy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Конечно не против! Спасибо!
...
Рейтинг: 0 / 0
Запрос на выбор потдерева из дерева на FOX PRO 6.0
    #34217618
Jura.K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день
Вот вариант получения всех подчиненных записей

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
LOCAL lcStartID, lnOldRecno
lcStartID= 1 
CREATE CURSOR tmpTable (ID INT, PID INT, LEVEL INT, NAME C( 100 ))
=add_parent(m.lcStartID)  && добавляем искомого родителя 

DO WHILE !EOF('tmpTable')
	lnOldRecno=RECNO('tmpTable')
	=add_parent(tmpTable.PID)
	GO m.lnOldREcno IN tmpTable
	SKIP IN tmpTable
ENDDO

FUNCTION add_parent
LPARAMETERS tcPid
SELECT * FROM __CLIENT WHERE id=m.tcPID INTO CURSOR _curPID
SCAN
	INSERT INTO tmpTable (ID,PID,LEVEL,NAME) Values (_curPID.ID,_curPID.PID,_curPID.LEVEL,_curPID.NAME)
ENDSCAN

В качестве тестовой таблицы была создана такая таблица
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
CREATE CURSOR __CLIENT (ID INT, PID INT, LEVEL INT, NAME C( 100 ))
INSERT INTO __CLIENT (ID , PID , LEVEL , NAME ) VALUES ( 1 , 2 , 1 ,'1')
INSERT INTO __CLIENT (ID , PID , LEVEL , NAME ) VALUES ( 2 , 3 , 2 ,'2')
INSERT INTO __CLIENT (ID , PID , LEVEL , NAME ) VALUES ( 2 , 4 , 2 ,'2')
INSERT INTO __CLIENT (ID , PID , LEVEL , NAME ) VALUES ( 3 , 5 , 3 ,'3')
INSERT INTO __CLIENT (ID , PID , LEVEL , NAME ) VALUES ( 3 , 6 , 3 ,'3')
INSERT INTO __CLIENT (ID , PID , LEVEL , NAME ) VALUES ( 5 , 7 , 4 ,'4')
INSERT INTO __CLIENT (ID , PID , LEVEL , NAME ) VALUES ( 5 , 8 , 4 ,'4')
INSERT INTO __CLIENT (ID , PID , LEVEL , NAME ) VALUES ( 6 , 9 , 4 ,'4')
INSERT INTO __CLIENT (ID , PID , LEVEL , NAME ) VALUES ( 6 , 10 , 4 ,'4')
INSERT INTO __CLIENT (ID , PID , LEVEL , NAME ) VALUES ( 4 , 11 , 3 ,'3')
INSERT INTO __CLIENT (ID , PID , LEVEL , NAME ) VALUES ( 12 , 13 , 0 ,'0')
Пробуйте все должно работать, напишите результат
...
Рейтинг: 0 / 0
Запрос на выбор потдерева из дерева на FOX PRO 6.0
    #34217664
Jura.K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ой у Вас принцип заполнения идентификаторов и родителей по другому тогда код должен быть таким
Формируем начальную таблицу
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
CREATE CURSOR __CLIENT (ID INT, PID INT, LEVEL INT, NAME C( 100 ))
INSERT INTO __CLIENT (ID , PID , LEVEL , NAME ) VALUES ( 1 , 0 , 1 ,'1')
INSERT INTO __CLIENT (ID , PID , LEVEL , NAME ) VALUES ( 2 , 1 , 1 ,'1')
INSERT INTO __CLIENT (ID , PID , LEVEL , NAME ) VALUES ( 3 , 2 , 2 ,'2')
INSERT INTO __CLIENT (ID , PID , LEVEL , NAME ) VALUES ( 4 , 2 , 2 ,'2')
INSERT INTO __CLIENT (ID , PID , LEVEL , NAME ) VALUES ( 5 , 3 , 3 ,'3')
INSERT INTO __CLIENT (ID , PID , LEVEL , NAME ) VALUES ( 6 , 3 , 3 ,'3')
INSERT INTO __CLIENT (ID , PID , LEVEL , NAME ) VALUES ( 7 , 5 , 4 ,'4')
INSERT INTO __CLIENT (ID , PID , LEVEL , NAME ) VALUES ( 8 , 5 , 4 ,'4')
INSERT INTO __CLIENT (ID , PID , LEVEL , NAME ) VALUES ( 9 , 6 , 4 ,'4')
INSERT INTO __CLIENT (ID , PID , LEVEL , NAME ) VALUES ( 10 , 6 , 4 ,'4')
INSERT INTO __CLIENT (ID , PID , LEVEL , NAME ) VALUES ( 11 , 4 , 3 ,'3')
INSERT INTO __CLIENT (ID , PID , LEVEL , NAME ) VALUES ( 12 , 13 , 0 ,'0')

Ну и собственно процедура которая собирает всех потомков
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
LOCAL lcStartID, lnOldRecno
LOCAL ARRAY laID( 1 , 1 )
CREATE CURSOR tmpTable (ID INT, PID INT, LEVEL INT, NAME C( 100 ))

lcStartID= 1 
&& добавляем искомого родителя 
SELECT * FROM __CLIENT WHERE ID=m.lcStartID INTO ARRAY laID
INSERT INTO tmpTable FROM ARRAY laID
&& добавляем потомков
DO WHILE !EOF('tmpTable')
	lnOldRecno=RECNO('tmpTable')
	=add_parent(tmpTable.ID)
	GO lnOldREcno IN tmpTable
	SKIP IN tmpTable
ENDDO

FUNCTION add_parent
LPARAMETERS tcid
SELECT * FROM __CLIENT WHERE PID=m.tcID INTO CURSOR _curID
SCAN
	INSERT INTO tmpTable (ID,PID,LEVEL,NAME) Values (_curID.ID,_curID.PID,_curID.LEVEL,_curID.NAME)
ENDSCAN
...
Рейтинг: 0 / 0
Запрос на выбор потдерева из дерева на FOX PRO 6.0
    #34217764
Jura.K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да можно вообще не использовать функцию add_parent
а сделать так

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
LOCAL lcStartID, lnOldRecno
CREATE CURSOR tmpTable (ID INT, PID INT, LEVEL INT, NAME C( 100 ))
lcStartID= 1 
*** добавляем искомого родителя 
SELECT * FROM __CLIENT WHERE ID=m.lcStartID INTO ARRAY laID
INSERT INTO tmpTable FROM ARRAY laID
&& добавляем потомков
DO WHILE !EOF('tmpTable')
	lnOldRecno=RECNO('tmpTable')
		SELECT * FROM __CLIENT WHERE PID=tmpTable.ID INTO CURSOR _curID
		SCAN
			INSERT INTO tmpTable (ID,PID,LEVEL,NAME) Values (_curID.ID,_curID.PID,_curID.LEVEL,_curID.NAME)
		ENDSCAN
	GO lnOldREcno IN tmpTable
	SKIP IN tmpTable
ENDDO
USE IN _curID


А если VFP8 и выше можно сделать еще проще
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
LOCAL lcStartID, lnOldRecno
CREATE CURSOR tmpTable (ID INT, PID INT, LEVEL INT, NAME C( 100 ))
lcStartID= 1 
*** добавляем искомого родителя 
INSERT INTO tmpTable (ID, PID, LEVEL, NAME) ;
		SELECT ID, PID, LEVEL, NAME FROM __CLIENT WHERE ID=m.lcStartID

*** добавляем потомков
DO WHILE !EOF('tmpTable')
	lnOldRecno=RECNO('tmpTable')
	INSERT INTO tmpTable (ID,PID,LEVEL,NAME) ;
                           SELECT ID,PID,LEVEL,NAME FROM __CLIENT WHERE PID=tmpTable.ID
	GO lnOldREcno IN tmpTable
	SKIP IN tmpTable
ENDDO

НО ВАМ ПРИДЕТСЯ ИСПОЛЬЗОВАТЬ код который я указывал выше
...
Рейтинг: 0 / 0
Запрос на выбор потдерева из дерева на FOX PRO 6.0
    #34217815
Jevgeniy to __Владимир__ Действительно. Результат отображает, но почемуто при открытии tmpTable отображает ПРАВИЛЬНОЕ количество записей. Но в итоге получаются пустые записи. в числовых полях - 0 в текстовых - пусто.

Поправь команду
Код: plaintext
INSERT INTO tmpTable (ID,PID,LEVEL,NAME) Values (&_cur..ID,&_cur..PID,&_cur..LEVEL,&_cur..NAME)
и всё заработает
вот рабочий вариант (проверено)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
CREATE CURSOR __CLIENT (ID INT, PID INT, LEVEL INT, NAME C( 100 ))
INSERT INTO __CLIENT (ID , PID , LEVEL , NAME ) VALUES ( 1 , 0 , 1 ,'1')
INSERT INTO __CLIENT (ID , PID , LEVEL , NAME ) VALUES ( 2 , 1 , 1 ,'1')
INSERT INTO __CLIENT (ID , PID , LEVEL , NAME ) VALUES ( 3 , 2 , 2 ,'2')
INSERT INTO __CLIENT (ID , PID , LEVEL , NAME ) VALUES ( 4 , 2 , 2 ,'2')
INSERT INTO __CLIENT (ID , PID , LEVEL , NAME ) VALUES ( 5 , 3 , 3 ,'3')
INSERT INTO __CLIENT (ID , PID , LEVEL , NAME ) VALUES ( 6 , 3 , 3 ,'3')
INSERT INTO __CLIENT (ID , PID , LEVEL , NAME ) VALUES ( 7 , 5 , 4 ,'4')
INSERT INTO __CLIENT (ID , PID , LEVEL , NAME ) VALUES ( 8 , 5 , 4 ,'4')
INSERT INTO __CLIENT (ID , PID , LEVEL , NAME ) VALUES ( 9 , 6 , 4 ,'4')
INSERT INTO __CLIENT (ID , PID , LEVEL , NAME ) VALUES ( 10 , 6 , 4 ,'4')
INSERT INTO __CLIENT (ID , PID , LEVEL , NAME ) VALUES ( 11 , 4 , 3 ,'3')
INSERT INTO __CLIENT (ID , PID , LEVEL , NAME ) VALUES ( 12 , 13 , 0 ,'0')

CREATE CURSOR tmpTable (ID INT, PID INT, LEVEL INT, NAME C( 100 ))
=P_ADD( 2 )
select tmpTable
BROWSE
RETURN 


PROCEDURE P_ADD
lparameters _PID
local _cur
 _cur=sys( 2015 )
 select * from __CLIENT where pid=_PID into cursor (_cur)
 scan
  INSERT INTO tmpTable (ID,PID,LEVEL,NAME) Values (&_cur..ID,&_cur..PID,&_cur..LEVEL,&_cur..NAME)
  =P_ADD(ID)
 endscan
 use in (_cur)
RETURN
...
Рейтинг: 0 / 0
Запрос на выбор потдерева из дерева на FOX PRO 6.0
    #34217845
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
  INSERT INTO tmpTable (ID,PID,LEVEL,NAME) Values (&_cur..ID,&_cur..PID,&_cur..LEVEL,&_cur..NAME)


И вроде бы здесь же, в этом топике обсуждалось и опять. Ну объясните мне, неразумному, ну на кой ляд здесь опять влеплена макроподстановка?
...
Рейтинг: 0 / 0
Запрос на выбор потдерева из дерева на FOX PRO 6.0
    #34217928
Sergey Sizov
Код: plaintext
1.
  INSERT INTO tmpTable (ID,PID,LEVEL,NAME) Values (&_cur..ID,&_cur..PID,&_cur..LEVEL,&_cur..NAME)


И вроде бы здесь же, в этом топике обсуждалось и опять. Ну объясните мне, неразумному, ну на кой ляд здесь опять влеплена макроподстановка?
Ну вы сами попробуйте выполнить предложенный мной последний вариант с макроподстоновкой и без.
И всё увидите!
...
Рейтинг: 0 / 0
Запрос на выбор потдерева из дерева на FOX PRO 6.0
    #34218141
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
Create Cursor __CLIENT (Id Int, PID Int, Level Int, Name C( 10 ))
Insert Into __CLIENT Values ( 1 , 0 , 1 ,'1')
Insert Into __CLIENT Values ( 2 , 1 , 1 ,'1')
Insert Into __CLIENT Values ( 3 , 2 , 2 ,'2')
Insert Into __CLIENT Values ( 4 , 2 , 2 ,'2')
Insert Into __CLIENT Values ( 5 , 3 , 3 ,'3')
Insert Into __CLIENT Values ( 6 , 3 , 3 ,'3')
Insert Into __CLIENT Values ( 7 , 5 , 4 ,'4')
Insert Into __CLIENT Values ( 8 , 5 , 4 ,'4')
Insert Into __CLIENT Values ( 9 , 6 , 4 ,'4')
Insert Into __CLIENT Values ( 10 , 6 , 4 ,'4')
Insert Into __CLIENT Values ( 11 , 4 , 3 ,'3')
Insert Into __CLIENT Values ( 12 , 13 , 0 ,'0')

Create Cursor tmpTable (Id Int, PID Int, Level Int, Name C( 10 ))
=P_ADD( 2 )
Select tmpTable
Browse
Return


Procedure P_ADD
Lparameters _PID
Local _Cur
_Cur = Sys( 2015 )
Select * From __CLIENT Where PID=_PID Into Cursor (_Cur)
Scan
	Scatter Memvar
	Insert Into tmpTable From Memvar
	=P_ADD(Id)
Endscan
Use In (_Cur)
Return
...
Рейтинг: 0 / 0
Запрос на выбор потдерева из дерева на FOX PRO 6.0
    #34219143
Jevgeniy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВСЕМ ОГРОМНОЕ СПАСИБО !!! ВСЕ ВАРИАНТЫ РАБОТАЮТ!!! Всем кто принял участие в обсуждении РЕСПЕКТ и УВАЖУХА
...
Рейтинг: 0 / 0
Запрос на выбор потдерева из дерева на FOX PRO 6.0
    #34219150
Jevgeniy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
18 сообщений из 43, страница 2 из 2
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Запрос на выбор потдерева из дерева на FOX PRO 6.0
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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