Необходимо получить отчет в котором содержатся следующие данные:
1. Наименование контрагента (заказчика).
2. Количество отработанного на него времени.
3. Пробег автомобилей
4. Перепробег
5. Сумма за часы и перепробег
6. Итоговые суммы по контрагенту (форма в приложении).
Для реализации данного отчета был написан ARD отчет , содержащий два запроса :
.Create view t2 as select spzakaz.*,tarifn.*,tarifav.*
where ((spzakaz.ckatusl/==katusl.nrec))and t2.spzakaz.ckatzak=nkatzak
and katusl.name='за перепробег';
.Create view R1 as SELECT putlst.npl,katusl.name,katzak.nrec,spzakaz.kol,spzakaz.sumusl,katorg.name
where((katzak.cputlst/==putlst.nrec and spzakaz.ckatzak/==katzak.nrec
and katzak.corg/==katorg.nrec and spzakaz.ckatusl/==katusl.nrec))
and katusl.name='За часы'
order by katorg.name;
В запросе R1 выбираются все путевые листы
Для каждого путевого листа существует запись в каталоге заказов (katzak) , которые ссылаются на путевой лист через поле Katzak.cputlst. На каждый заказ ссылаются спецификации заказов (таблица SpZakaz) где собственно и храниться сколько и чего было проделано по данному путевому листу (связь с Katzak через поле SpKatzak.Ckatzak).
В поле SPKATZAK. CKATUSL храниться ссылка на каталог услуг , SPKATZAK. SUMUSL сумма за услуги , SPKATZAK . KOL количество этих услуг.
Поле KATZAK. CORG ссылается на контрагента чей это заказ .
Запрос R1 выбирает путевые листы у которых в спецификации заказа стоит услуга «За часы» (данная услуга есть у каждого путевого листа , различается лишь количество и стоимость).
Запрос Т2 выбирает для того же путевого из спецификаций те строки , где в качестве услуги стоит «за перепробег». Для этого в блоке № 1 переменной Nkatzak присваивается знач%E
ARD отчет
Модераторы: m0p3e, edward_K, Модераторы