суммирование однотипных записей в отчете
Модераторы: m0p3e, edward_K, Модераторы
суммирование однотипных записей в отчете
Добрый день, всем!
Делаю ARD-отчет, в котором с помощью create view выгребаю из таблицы данные (например, матценности). В таблице есть матценности с одинаковыми названиями, поэтому в отчете хотелось бы видеть название этой МЦ и рядом кол-во. Подскажите, как это лучше реализовать?
Делаю ARD-отчет, в котором с помощью create view выгребаю из таблицы данные (например, матценности). В таблице есть матценности с одинаковыми названиями, поэтому в отчете хотелось бы видеть название этой МЦ и рядом кол-во. Подскажите, как это лучше реализовать?
-
- Местный житель
- Сообщения: 1844
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
- Контактная информация:
Re: суммирование однотипных записей в отчете
Поподробнее описать задачу нужно, а то не хочется гадать (почитайте сами)...
-
- Постоянный обитатель
- Сообщения: 147
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Новосибирск
- Контактная информация:
Re: суммирование однотипных записей в отчете
Что-то типа
.create view a as select *....
....
order by katmc.name;
.{table 'a' by a.katmc.name
.begin
kolvo:=0;
mcname:=a.katmc.name;
end.
.{by a.spsopr.nrec
.begin
kolvo:=kolvo+a.spsopr.kolfact;
end.
.}
<здесь выводим mcname, kolvo>
.}
.endform
.create view a as select *....
....
order by katmc.name;
.{table 'a' by a.katmc.name
.begin
kolvo:=0;
mcname:=a.katmc.name;
end.
.{by a.spsopr.nrec
.begin
kolvo:=kolvo+a.spsopr.kolfact;
end.
.}
<здесь выводим mcname, kolvo>
.}
.endform
-
- Местный житель
- Сообщения: 1844
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
- Контактная информация:
Re: суммирование однотипных записей в отчете
> В таблице есть матценности с одинаковыми >названиями, поэтому в отчете хотелось бы >видеть название этой МЦ и рядом кол-во.
В katmc есть позиции с одинаковыми названиями ? то есть нужно суммировать все кол-во spsopr по этим двум одинаковым МЦ и показать одной строкой ?
В katmc есть позиции с одинаковыми названиями ? то есть нужно суммировать все кол-во spsopr по этим двум одинаковым МЦ и показать одной строкой ?
Re: суммирование однотипных записей в отчете
Описываю подробно.
Необходимо из картотеки основных средств выгребсти основные средства по какому либо подразделению. Это делается без проблем.
Далее, в картотеке существуют ОС, названия которых повторяются. Вот именно их необходимо в отчете отобразить как одну запись с указанием кол-ва этих ОС и их суммарной стоимости.
Необходимо из картотеки основных средств выгребсти основные средства по какому либо подразделению. Это делается без проблем.
Далее, в картотеке существуют ОС, названия которых повторяются. Вот именно их необходимо в отчете отобразить как одну запись с указанием кол-ва этих ОС и их суммарной стоимости.
-
- Местный житель
- Сообщения: 1844
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
- Контактная информация:
Re: суммирование однотипных записей в отчете
.var
old_rec,cur_rec :comp
k_name :string
kol,sum :double
first :integer
vyvod :boolean
.endvar
.create view t1 as select from katmc order by katmc.name
.create view t2 as select from spsopr
where ((cur_rec==spsopr.cmcusl))
.begin
first:=1;
vyvod:=false;
end.
.{table t1
.begin
cur_rec:=katmc.nrec;
if old_rec<>cur_rec
{
old_rec:=cur_rec;
if first<>1
{
vyvod:=true;
}
first:=0;
}
end.
.{?internal; vyvod=true
.fields
k_name kol sum
.endfields
^ ^ ^
.begin
kol:=0;
sum:=0;
vyvod:=false;
end.
.}
.{table t2
.begin
k_name:=t1.name;
kol:=kol+t2.kol;
sum:=sum+(t2.kol*t2.price);
end.
.}
.}
.fields
k_name kol sum
.endfields
^ ^ ^
.endform
Что-то вроде этого.Хотя быстро писал могут быть неточности.
old_rec,cur_rec :comp
k_name :string
kol,sum :double
first :integer
vyvod :boolean
.endvar
.create view t1 as select from katmc order by katmc.name
.create view t2 as select from spsopr
where ((cur_rec==spsopr.cmcusl))
.begin
first:=1;
vyvod:=false;
end.
.{table t1
.begin
cur_rec:=katmc.nrec;
if old_rec<>cur_rec
{
old_rec:=cur_rec;
if first<>1
{
vyvod:=true;
}
first:=0;
}
end.
.{?internal; vyvod=true
.fields
k_name kol sum
.endfields
^ ^ ^
.begin
kol:=0;
sum:=0;
vyvod:=false;
end.
.}
.{table t2
.begin
k_name:=t1.name;
kol:=kol+t2.kol;
sum:=sum+(t2.kol*t2.price);
end.
.}
.}
.fields
k_name kol sum
.endfields
^ ^ ^
.endform
Что-то вроде этого.Хотя быстро писал могут быть неточности.
-
- Местный житель
- Сообщения: 1844
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
- Контактная информация:
Re: суммирование однотипных записей в отчете
Блин, ошибся малость :
не так
if old_rec<>cur_rec
а вот так
if old_rec<>t1.name
{
old_rec:=t1.name
.....
не так
if old_rec<>cur_rec
а вот так
if old_rec<>t1.name
{
old_rec:=t1.name
.....
-
- Местный житель
- Сообщения: 1844
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
- Контактная информация:
Re: суммирование однотипных записей в отчете
А еще лучше вот так :
if old_rec<>locase(trim(t1.name))
...
if old_rec<>locase(trim(t1.name))
...
Re: суммирование однотипных записей в отчете
Спасибо, разобрался.