parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Почему обрабатывается только первая запись .menu при рекурсии?

a2petrov 21.04.2007 03:54

Помогите, пожалуйста, понять, почему обрабатывается только первая запись .menu при рекурсивном построении дерева подчиненных сотрудников?

Имеется стандартная таблица пользователей (с полями auser_id и parent_id).

Была написана следующая функция на Парсер3, задача которой вывести поддерево подчиненных конкретного сотрудника.
@getSubTree[uid;subtree]

^if(def $uid){
^connect[$MAIN:connect-string]{
	$children[^table::sql{SELECT auser_id, parent_id, status FROM auser WHERE parent_id = '$uid'}]

	^if(def $children){

	^if(def $subtree){
		^subtree.join[$children]
		}{
		$subtree[$children]
		}

	^children.menu{
		$subtree[^getSubTree[$children.auser_id;$subtree]]
	}


	}
}
}

$result[$subtree]
В результате работы этой ф-ции выводятся подчиненные только по одной ветке. Про остальных "детей" парсер забывает.

Ради интереса закомментировал

# ^children.menu{
# }

Ничего не изменилось.

Почему так может быть? Кто с подобным сталкивался?