Страница 1 из 1

ARD отчет2 продолжение

Добавлено: 31 май 2002, 15:31
GGG777
16 2657 за перепробег 275 151 УЭРиТН Ростоши,Покровка
104696 За часы 12 1807 за перепробег 270 373 УЭРиТН Ростоши,Покровка
Теперь несколько изменим данный отчет , попытаемся суммировать часы , перепробеги и суммы по контрагентам :
.ard
.var
nkatzak:Comp;
c:Integer ;
flag:Integer;
org1, org2:string;
часы:Double ;
пробег:Double;
перепробег:Double;
СуммаЧ:Double ;
СуммаП:Double ;
.endvar
.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.*,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;
.begin
flag:=0;
end.
.begin
flag:=0;
end.

.{table 'R1'
.begin
nkatzak:=r1.katzak.nrec;
org2:=r1.katorg.name;
end.
.{table 'T2'
.}
.{?internal;flag=0
.begin
Org1:=Org2;
flag:=1;
end.
.}
.{?internal;flag=1
.{?internal;org1=org2
.begin
часы:=часы+r1.spzakaz.kol;
пробег:=пробег+r1.putlst.probegall;
перепробег:=перепробег+t2.spzakaz.kol;
СуммаЧ:=СуммаЧ+r1.spzakaz.Sumusl;
СуммаП:=СуммаП+t2.spzakaz.sumusl;
end.
.}
.{?internal;org1<>org2
.fields
ORG1
часы
пробег
перепробег
СуммаЧ
СуммаП
.endfields
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Часы &&&&&&.&& Пробег &&&&&.&& ПереПробег&&&&&&.&& СуммаЧасы &&&&&.&& СуммазаПереПпробег&&&&&&.&&
.begin
часы:=r1.spzakaz.kol;
пробег:=r1.putlst.probegall;
перепробег:=t2.spzakaz.kol;
СуммаЧ:=r1.spzakaz.Sumusl;
СуммаП:=t2.spzakaz.sumusl;
org1:=org2;
end.
.}
.}
.}
.endform
Результат выполнения
Контрагент часы пробег перепробег сум.часы сум.перепробег
АППАРАТ УПРАВЛЕНИЯ ООО ОГП 16.00 220.00 260.00 2408.80 82.80
ОГПЗ 202.00 2200.00 0.00 30246.70 0.00
ОГПУ 215.00 3300.00 758.00 32164.52 495.36
ОГПЭ 38.00 440.00 0.00 5787.94 0.00
ОГР 30.00 440.00 0.00 4642.20 0.00
ОРЕНБУРГСКИЙ ГЗ 48.00 660.00 0.00 7427.52 0.00
УЖДТ 96.00 1320.00 0.00 14478.24 0.00
То есть все что было выбрано во втором запросе(Т2) просуммировано либо просто не верно , либо вообще не известно как. В тоже время если заменить во втором запросе (Т2) услугу «за перепробег» на «За часы» то все срабатывает правильно , что свидетельствует о верности алгоритма подсчета суммы по контрагенту.
Подскажите как выйти из этого положения .

Re: ARD отчет2 продолжение

Добавлено: 04 июн 2002, 00:49
Motoroller
Алексей: с 8)овет дня:
Обратись к galpro
http://galpro.itpark.ru