Делаю ARD, пока FRM потом хочу перевести в SLK.
После селекта получаю:
name1   sum1   sum2  sum3
name1   sum1   sum2  sum3
name1   sum1   sum2  sum3
name2  sum1   sum2  sum3
name2  sum1   sum2  sum3
name3  sum1   sum2  sum3
............
хочу вывести:
name 1
   sum1   sum2  sum3
   sum1   sum2  sum3
   sum1   sum2  sum3
   itog1    itog2   itog3
name2
   sum1   sum2  sum3
   sum1   sum2  sum3
   itog1    itog2   itog3
..............
Как это сделать?
Прошу не пинать, только начинаю писать.
                                    С уважением Олег
			
			
									
						
										
						Азы: Группирование при выводе ?
Модераторы: m0p3e, edward_K, Модераторы
Текст ARD
Вот текст отчета на текущем этапе:
.Form TEST_7
.NameInList 'Тест 7'
.Group 'Отчеты тестовые'
.ard
.var
code_kau:comp
.endvar
.create view t1 as
select oborot.scheto,oborot.subossch,
oborot.schetk,oborot.subschk,oborot.kauks[1],oborot.kauks[2],oborot.kauks[3],
katorg.name,
basedoc.nodoc,basedoc.name, basedoc.summa, basedoc.nds, basedoc.total,
katparty.name,
oborot.datob,oborot.sumob from oborot,katorg,katparty,basedoc where
(('308'==oborot.scheto and '03'==oborot.subossch and
oborot.kauks[1]/==katorg.nrec and oborot.kauks[2]/==basedoc.nrec and oborot.kauks[3]/==katparty.nrec ))
order by oborot.kauks[3],oborot.datob;
.fields
katparty.name
basedoc.nodoc
oborot.datob
katorg.name
basedoc.total
basedoc.summa
basedoc.nds
.endfields
.{table 't1'
.{?internal;(t1.basedoc.summa<>0)
@@@@@@@@@@@@@@@@@@@@@@@ № &&&& от @@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@ &#&&&&&.&& &#&&&&&.&& &#&&&&&.&&
.}
.}
.endform
Надо чтобы katparty.name было заголовком групп и в конце группы
итоги по ней.
С уважением Олег
			
			
									
						
										
						.Form TEST_7
.NameInList 'Тест 7'
.Group 'Отчеты тестовые'
.ard
.var
code_kau:comp
.endvar
.create view t1 as
select oborot.scheto,oborot.subossch,
oborot.schetk,oborot.subschk,oborot.kauks[1],oborot.kauks[2],oborot.kauks[3],
katorg.name,
basedoc.nodoc,basedoc.name, basedoc.summa, basedoc.nds, basedoc.total,
katparty.name,
oborot.datob,oborot.sumob from oborot,katorg,katparty,basedoc where
(('308'==oborot.scheto and '03'==oborot.subossch and
oborot.kauks[1]/==katorg.nrec and oborot.kauks[2]/==basedoc.nrec and oborot.kauks[3]/==katparty.nrec ))
order by oborot.kauks[3],oborot.datob;
.fields
katparty.name
basedoc.nodoc
oborot.datob
katorg.name
basedoc.total
basedoc.summa
basedoc.nds
.endfields
.{table 't1'
.{?internal;(t1.basedoc.summa<>0)
@@@@@@@@@@@@@@@@@@@@@@@ № &&&& от @@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@ &#&&&&&.&& &#&&&&&.&& &#&&&&&.&&
.}
.}
.endform
Надо чтобы katparty.name было заголовком групп и в конце группы
итоги по ней.
С уважением Олег
- 
				Den
- Местный житель
- Сообщения: 1847
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
- Контактная информация:
Может быть несколько коряво, но должно работать. Суть ясна, сам доделаешь мелочи...    
 
.Form TEST_7
.NameInList 'Тест 7'
.Group 'Отчеты тестовые'
.ard
.var
code_kau:comp
first :integer
oldparty :string
vyvod : boolean
totsum : double
.endvar
.create view t1 as
select oborot.scheto,oborot.subossch,
oborot.schetk,oborot.subschk,oborot.kauks[1],oborot.kauks[2],oborot.kauks[3],
katorg.name,
basedoc.nodoc,basedoc.name, basedoc.summa, basedoc.nds, basedoc.total,
katparty.name,
oborot.datob,oborot.sumob from oborot,katorg,katparty,basedoc where
(('308'==oborot.scheto and '03'==oborot.subossch and
oborot.kauks[1]/==katorg.nrec and oborot.kauks[2]/==basedoc.nrec and oborot.kauks[3]/==katparty.nrec ))
order by oborot.kauks[3],oborot.datob;
.begin
first:=1;
end.
.{table 't1'
.begin
if oldparty<>t1.katparty.name
{
oldparty:=t1.katparty.name;
vyvod:=true;
}
else vyvod:=false;
end.
.{?internal; vyvod=true
.{?internal; vyvod=true and first<>1
.fields
totsum
.endfields
Итого по партии &&&&&&&&&&&&&&.&&
.begin
totsum:=0;
end.
.}
.fields
oldparty
.endfields
^
.begin
first:=0;
end.
.}
.{?internal;(t1.basedoc.summa<>0)
.begin
totsum:=totsum+t1.basedoc.summa;
end.
.fields
katparty.name
basedoc.nodoc
oborot.datob
katorg.name
basedoc.total
basedoc.summa
basedoc.nds
.endfields
@@@@@@@@@@@@@@@@@@@@@@@ № &&&& от @@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@ &#&&&&&.&& &#&&&&&.&& &#&&&&&.&&
.}
.}
.fields
totsum
.endfields
Итого по партии &&&&&&&&&&&&&&.&&
.endform
			
			
									
						
										
						 
 .Form TEST_7
.NameInList 'Тест 7'
.Group 'Отчеты тестовые'
.ard
.var
code_kau:comp
first :integer
oldparty :string
vyvod : boolean
totsum : double
.endvar
.create view t1 as
select oborot.scheto,oborot.subossch,
oborot.schetk,oborot.subschk,oborot.kauks[1],oborot.kauks[2],oborot.kauks[3],
katorg.name,
basedoc.nodoc,basedoc.name, basedoc.summa, basedoc.nds, basedoc.total,
katparty.name,
oborot.datob,oborot.sumob from oborot,katorg,katparty,basedoc where
(('308'==oborot.scheto and '03'==oborot.subossch and
oborot.kauks[1]/==katorg.nrec and oborot.kauks[2]/==basedoc.nrec and oborot.kauks[3]/==katparty.nrec ))
order by oborot.kauks[3],oborot.datob;
.begin
first:=1;
end.
.{table 't1'
.begin
if oldparty<>t1.katparty.name
{
oldparty:=t1.katparty.name;
vyvod:=true;
}
else vyvod:=false;
end.
.{?internal; vyvod=true
.{?internal; vyvod=true and first<>1
.fields
totsum
.endfields
Итого по партии &&&&&&&&&&&&&&.&&
.begin
totsum:=0;
end.
.}
.fields
oldparty
.endfields
^
.begin
first:=0;
end.
.}
.{?internal;(t1.basedoc.summa<>0)
.begin
totsum:=totsum+t1.basedoc.summa;
end.
.fields
katparty.name
basedoc.nodoc
oborot.datob
katorg.name
basedoc.total
basedoc.summa
basedoc.nds
.endfields
@@@@@@@@@@@@@@@@@@@@@@@ № &&&& от @@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@ &#&&&&&.&& &#&&&&&.&& &#&&&&&.&&
.}
.}
.fields
totsum
.endfields
Итого по партии &&&&&&&&&&&&&&.&&
.endform