|
v7: Цикл с разбитием на группы | ☑ | ||
---|---|---|---|---|
0
Aragan
29.08.12
✎
13:56
|
Что то не выспался наверное сегодня. Пишу такой обход таблицы
Смысл собрать все элементы с одинаковой группой и засунуть в функцию печати.. и какая то хрень получается номгруппы = 1; первый=1; остальное=0; СпНаправлений.УдалитьВсе(); Пока ТзНаправлений.ПолучитьСтроку()=1 Цикл Если ТзНаправлений.Группы>1 Тогда Если ТзНаправлений.Группы <> номгруппы Тогда Если первый = 1 Тогда СпНаправлений.УдалитьВсе(); СпНаправлений.ДобавитьЗначение(ТзНаправлений.Направление); номгруппы = ТзНаправлений.Группы; первый=0; Иначе номгруппы = ТзНаправлений.Группы; Печать(1); СпНаправлений.УдалитьВсе(); СпНаправлений.ДобавитьЗначение(ТзНаправлений.Направление); КонецЕсли; Иначе СпНаправлений.ДобавитьЗначение(ТзНаправлений.Направление); КонецЕсли; КонецЕсли; КонецЦикла; |
|||
1
Ёпрст
29.08.12
✎
13:59
|
сортировать ТЗ по группам не предлагать ?
|
|||
2
Aragan
29.08.12
✎
14:02
|
отсортировано уже все, просто затупил в какой момент в печать бросить список и обнулить для следущей группы
|
|||
3
Aragan
29.08.12
✎
14:05
|
куда вот эти строчки пристроить ?
Печать(1); СпНаправлений.УдалитьВсе(); они однозначно неправильно сейчас находятся и больше 2-х элементов я в список не записываю |
|||
4
Ёпрст
29.08.12
✎
14:06
|
опосля цикла нужно проверить на РазмерСписка, если он >0 то еще раз печать..
|
|||
5
Aragan
29.08.12
✎
14:07
|
то бишь задача каждую группу с одинаковым номером в уже очищенный список засунуть
|
|||
6
Aragan
29.08.12
✎
14:08
|
(4) Там еще одно условие в цикле, если группа = 1
|
|||
7
Ёпрст
29.08.12
✎
14:09
|
Проц Печать()
Ежели СпНаправлений.РазмерСписка()=0 Тогда Возврат; Конец Ежели; КонецПроцы ............. номгруппы = ""; СпНаправлений = СоздатьОбъект("СписокЗначений"); Пока ТзНаправлений.ПолучитьСтроку()=1 Цикл Если ТзНаправлений.Группы>1 Тогда Если ТзНаправлений.Группы <> номгруппы Тогда Печать(1); СпНаправлений.УдалитьВсе(); КонецЕсли; СпНаправлений.ДобавитьЗначение(ТзНаправлений.Направление); КонецЕсли; КонецЦикла; Печать(1); |
|||
8
Ёпрст
29.08.12
✎
14:10
|
так, точнее
Проц Печать() Ежели СпНаправлений.РазмерСписка()=0 Тогда Возврат; Конец Ежели; КонецПроцы ............. номгруппы = ""; СпНаправлений = СоздатьОбъект("СписокЗначений"); Пока ТзНаправлений.ПолучитьСтроку()=1 Цикл Если ТзНаправлений.Группы>1 Тогда Если ТзНаправлений.Группы <> номгруппы Тогда Печать(1); номгруппы = ТзНаправлений.Группы; СпНаправлений.УдалитьВсе(); КонецЕсли; СпНаправлений.ДобавитьЗначение(ТзНаправлений.Направление); КонецЕсли; КонецЦикла; Печать(1); |
|||
9
Aragan
29.08.12
✎
14:34
|
(8) Спасибо, уже разобрался
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |