В печатной форме счета-фактуры в спецификации встречаются одинаковые МЦ, но с разной ценой, 
Наименование товара
(описание выполненных работ, оказанных услуг), имущественного права	Единица
измерения	Количество
1	2	3
Ус.-р. 6115064  Л52 Агрегат №1 непрерыв  Ролик  Л52-в-12	штука	12
Ус.-р. 6115064  Л52 Агрегат №1 непрерыв  Ролик  Л52-в-12 	штука	8
Ус.-р. 6115079-12  Л52 Агрегат №1 непрерыв  Ролик ф=1500*2500*3935  Л52-в-13 	штука	1
Нужно МЦ c одним наименованием объединить  в одну строку, ну и количество соответственно посчитать общее
с помощью Internal собираю одинаковые наименования МЦ, а вот  количество никак не получается
…
.begin
If Sp_1=Spname
{
Vyvod:=false;
}
Else {
Sp_1:= Spname;
Vyvod:=true;
}
Kol:=kol+spkol;
End.
.{?internal; (Vyvod=true)
.fields
Sp_1
  #f_(if (SpPrMC = 3, '', SpOtpEd))
kol
.endfields
^	^	^
.}
.begin
Kol:=0;
End.
…
В результате :
Наименование товара
(описание выполненных работ, оказанных услуг), имущественных прав	Единица
измерения	Количество
1	2	3
Ус.-р. 6115064  Л52 Агрегат №1 непрерыв  Ролик  Л52-в-12	штука	12
Ус.-р. 6115079-12  Л52 Агрегат №1 непрерыв  Ролик ф=1500*2500*3935  Л52-в-13	штука	1
Как сложить кол-во???
			
			
									
						
										
						Посчитать количество в internal
Модераторы: m0p3e, edward_K, Модераторы
- 
				Den
 - Местный житель
 - Сообщения: 1847
 - Зарегистрирован: 29 мар 2005, 17:49
 - Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
 - Контактная информация:
 
По Вашему алгоритму могут быть косяки, если спецификация неотсортирована. Если отсортирована, то тогда можно через переменные, если нет, то одними переменными не обойдетесь в данном случае, Выход :
1 Массив
2 Временная таблица
А так (в случае если отсортирована...) :
.var
first :integer
oldname :string
totkol: double
.endvar
.begin
first:=1;
end.
.{ //основной цикл вывода из прототипа
.begin
If Sp_1<>Spname
{
Vyvod:=true;
Sp_1:=Spname ;
}
Else Vyvod:=false;
                         
End.
.{?internal; (Vyvod=true and first<>1)
.fields
oldname
totkol
.endfields
^ ^
.begin
totkol:=0;
end.
.}
.begin
first:=0;
totkol:=tokol+kol;
oldname :=sp_name;
End.
…
.}
и в конце еще в самой последней итерации выводим поля после всех циклов :
.fields
oldname
totkol
.endfields
Коряво может, но должно работать...
			
			
									
						
										
						1 Массив
2 Временная таблица
А так (в случае если отсортирована...) :
.var
first :integer
oldname :string
totkol: double
.endvar
.begin
first:=1;
end.
.{ //основной цикл вывода из прототипа
.begin
If Sp_1<>Spname
{
Vyvod:=true;
Sp_1:=Spname ;
}
Else Vyvod:=false;
End.
.{?internal; (Vyvod=true and first<>1)
.fields
oldname
totkol
.endfields
^ ^
.begin
totkol:=0;
end.
.}
.begin
first:=0;
totkol:=tokol+kol;
oldname :=sp_name;
End.
…
.}
и в конце еще в самой последней итерации выводим поля после всех циклов :
.fields
oldname
totkol
.endfields
Коряво может, но должно работать...