Подскажите как реализовать НЕ ВСЕ ТАК ПРОСТО

1. kotov 209 26.03.08 15:29 Сейчас в теме
Таблица значений выглядет следующим образом
№ Значение
1
2
2.1
2.2
3
3.1
3.1.1
3.1.2
3.2
и т.д.
Как сделать чтобы Значение по строке складывалось из значений подстрок
примерно так :
2=2.1+2.2
3.1=3.1.1+3.1.2
3=3.1+3.2 ???

Заранее всем откликнувшимся спасибо!
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. CheBurator 3121 27.03.08 00:29 Сейчас в теме
типичная задача вывода ТЗ по группировкам, попробовать посмотреть в сторону рекурсии если есть желание поупражняться...
3. kotov 209 27.03.08 08:45 Сейчас в теме
Желание есть не только поупражнять,но и с удовольствием научусь использовать рекурсию для ТЗ, если подскажешь Che Burashka..!

Вот мой вариант перебора всех строк с суммированием..:
Для i=1 По Строки.КоличествоСтрок()-1 Цикл
ТекСтрока=Строки.ПолучитьЗначение(i,1);
ТекРС=Строки.ПолучитьЗначение(i,5);
Для j=i+1 По Строки.КоличествоСтрок() Цикл
СледСтрока=Строки.ПолучитьЗначение(j,1);
СледРС=Строки.ПолучитьЗначение(j,5);
Если СокрЛП(Сред(ТекСтрока,1,1))=СокрЛП(Сред(СледСтрока,1,1)) Тогда
ТекРС=ТекРС+СледРС;
Строки.УстановитьЗначение(i,5,ТекРС);
Иначе
Прервать;
КонецЕсли;
КонецЦикла;
КонецЦикла;

Получается следующее и не пойму что не так с циклом..
Исходные данные
№ Значение
1 10
2
2,1 5
2,2 6
после этого цикла
№ Значение
1 10
2 11
2,1 11
2,2 6
в чем ошибка???

4. Noy 1076 27.03.08 10:05 Сейчас в теме
Один из самых простых способов:
Добавь новую колонку МояГруппировка, пробежись по ТЗ и заполни ее ТЗ.МояГруппировка=Цел(ТЗ.НужноеЗначение), потом свернуть("МояГруппировка","НужныеТебеПоля")

Только что пересмотрел исходные данные - не совсем правильный метод я предложил - он сгруппирует только до целых чисел.
5. 77dpi 27.03.08 11:17 Сейчас в теме
ошибся, нужно было до конца прочитать

6. kotov 209 27.03.08 11:41 Сейчас в теме
Спасибо за бразильский вариант (77dpi),но ответ оказался проще
Достаточно в моем варианте поставить условие и все отлично заработало
Если (СокрЛП(Сред(ТекСтрока,1,1))=СокрЛП(Сред(СледСтрока,1,1)))и(СтрДлина(СокрЛП(СледСтрока))-СтрДлина(СокрЛП(ТекСтрока))<>0)

Вышла ошибка!!! Не все так просто :((

И все таки кто нибудь знает как это реализовать?
7. kotov 209 27.03.08 16:51 Сейчас в теме
Если (СокрЛП(Сред(ТекСтрока,1,1))=СокрЛП(Сред(СледСтрока,1,1)))и(СтрДлина(СокрЛП(СледСтрока))-СтрДлина(СокрЛП(ТекСтрока))>0) - условие работает до момента:
№ значение
4.9 1
4.10 1
а после цикла с условием
№ значение
4.9 2
4.10 1
Пока не могу решить проблемы..
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот