суммирование однотипных записей в отчете

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

Ответить
Alexx
Постоянный обитатель
Сообщения: 168
Зарегистрирован: 29 мар 2005, 17:49

суммирование однотипных записей в отчете

Сообщение Alexx »

Добрый день, всем!
Делаю ARD-отчет, в котором с помощью create view выгребаю из таблицы данные (например, матценности). В таблице есть матценности с одинаковыми названиями, поэтому в отчете хотелось бы видеть название этой МЦ и рядом кол-во. Подскажите, как это лучше реализовать?
Den
Местный житель
Сообщения: 1842
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
Контактная информация:

Re: суммирование однотипных записей в отчете

Сообщение Den »

Поподробнее описать задачу нужно, а то не хочется гадать (почитайте сами)...
St.Anislav
Постоянный обитатель
Сообщения: 147
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Новосибирск
Контактная информация:

Re: суммирование однотипных записей в отчете

Сообщение St.Anislav »

Что-то типа
.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
Den
Местный житель
Сообщения: 1842
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
Контактная информация:

Re: суммирование однотипных записей в отчете

Сообщение Den »

> В таблице есть матценности с одинаковыми >названиями, поэтому в отчете хотелось бы >видеть название этой МЦ и рядом кол-во.

В katmc есть позиции с одинаковыми названиями ? то есть нужно суммировать все кол-во spsopr по этим двум одинаковым МЦ и показать одной строкой ?
Alexx
Постоянный обитатель
Сообщения: 168
Зарегистрирован: 29 мар 2005, 17:49

Re: суммирование однотипных записей в отчете

Сообщение Alexx »

Описываю подробно.
Необходимо из картотеки основных средств выгребсти основные средства по какому либо подразделению. Это делается без проблем.
Далее, в картотеке существуют ОС, названия которых повторяются. Вот именно их необходимо в отчете отобразить как одну запись с указанием кол-ва этих ОС и их суммарной стоимости.
Den
Местный житель
Сообщения: 1842
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
Контактная информация:

Re: суммирование однотипных записей в отчете

Сообщение Den »

.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

Что-то вроде этого.Хотя быстро писал могут быть неточности. ;)
Den
Местный житель
Сообщения: 1842
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
Контактная информация:

Re: суммирование однотипных записей в отчете

Сообщение Den »

Блин, ошибся малость :
не так
if old_rec<>cur_rec
а вот так
if old_rec<>t1.name
{
old_rec:=t1.name
.....
Den
Местный житель
Сообщения: 1842
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
Контактная информация:

Re: суммирование однотипных записей в отчете

Сообщение Den »

А еще лучше вот так :
if old_rec<>locase(trim(t1.name))
...
Alexx
Постоянный обитатель
Сообщения: 168
Зарегистрирован: 29 мар 2005, 17:49

Re: суммирование однотипных записей в отчете

Сообщение Alexx »

Спасибо, разобрался.
Ответить