|
|
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) Спасибо, уже разобрался
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший