Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Нужно красиво обработать ИТЗ (число прочтений - 1287 )
DionX
Senior Member
****
Отсутствует



Сообщений: 373
Местоположение: Кемерово
Зарегистрирован: 22. Августа 2006
Пол: Мужской
Нужно красиво обработать ИТЗ
28. Ноября 2007 :: 02:36
Печать  
Ни как не могу красивый алгоритм придумать.
Индексированная таблица:
Цитата:
итз.НоваяКолонка("Сам")
итз.НоваяКолонка("Подчинён")
итз.НоваяКолонка("Данные")

Примерные значения:
1        ид1
2   1   аукпк
3   1   ауауау
4   2   вауауа
ну и тому подобное.
Задача:
Сформировать такую таблицу, в колонке тзПодчинённые каждой строки, находилась бы итз со строками, значение "Подчинён" которых = значению "Сам". Т.е. некое дерево зависимостей должно получится. Кто-нить понял что мне нужно? Очень довольный Если ДА, то помогите плз))))
З.Ы. В данном премере должна получится итз с одной строкой, в колонке тзПодчинённые будет итз с двумя строками (Сам = 2,3). В этой подчинунной таблице в строке с Сам=2 будет итз с одной строкой (Сам=4), а в строке с Сам=3 будет итз с 0 строками.
  
Наверх
ICQ  
IP записан
 
DionX
Senior Member
****
Отсутствует



Сообщений: 373
Местоположение: Кемерово
Зарегистрирован: 22. Августа 2006
Пол: Мужской
Re: Нужно красиво обработать ИТЗ
Ответ #1 - 28. Ноября 2007 :: 04:13
Печать  
Код
Выбрать все
Функция ПодчинённыеСтроки(Куда, Откуда, Чему)
	Откуда.УстановитьФильтр(Чему,Чему,"Подчинён");
	Куда.Загрузить(Откуда,"Подчинён");
	Куда.НоваяКолонка("тзПотомки");
	Откуда.УдалитьСтроки("Подчинён");
	Возврат Куда;
КонецФункции

Процедура СформироватьПодчинение(Где, ИзЧего)
	Где.ВыбратьСтроки();
	Пока (Где.ПолучитьСтроку() = 1) и (ИзЧего.КоличествоСтрок() > 0) Цикл
	    Где.тзПотомки = ПодчинённыеСтроки(СоздатьОбъект("ИндексированнаяТаблица"), ИзЧего, Где.ВведенНаОсновании);
		СформироватьПодчинение(Где.тзПотомки, ИзЧего);
	КонецЦикла;
КонецПроцедуры

.......................
итзВозврат = ПодчинённыеСтроки(СоздатьОбъект("ИндексированнаяТаблица"), итзТМП, ДокОснование);
СформироватьПодчинение(итзВозврат, итзТМП);
 



вот так получилось вроде... Нормально? Озадачен
  
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать