отчет на FCom
Добавлено: 03 авг 2012, 21:41
Добрый вечер! Подскажите,делаю отчет на FCom в версии 8.1 по оборотам по сч 60.01 выводится список организаций,договор,дата договора, номер ДО и дата ДО,сумма по ДО и валюта. Так вот проблема, за период по одной организации по одному ДО может быть несколько оборотов,соответственно в список эта организация и ДО выводится по несколько раз. Как добиться на уровне запроса или отчета группировку,если данная организация таким номером ДО есть? В запросе в сапорте group by и select distinct не работает.
Отчет:
.form 'do_s_val'
.nameInlist 'документы-основания с суммой и валютой по до'
.ard
.p 60
.defo landscape
.var
dbeg_1,dend_1:date;
Org:string;
Dog:string;
Ddog:date;
Osn:string;
Dosn:date;
Sumv:double;
Valuta:string;
.endvar
.create view val
As select
Katorg.name,dogovor.ddoc,dogovor.nodoc,basedoc.ddoc,basedoc.nodoc,basedoc.total,klval.simvolv
From
Badedoc,dogovor,klval,oborot,katorg
Where((
'360'/==oborot.scheto and '01'/==oborot.subossch and dbeg_1<<=oborot.datob and dend_1>>=oborot.datob and oborot.kauos[1]/==katorg.nrec and oborot.kauos[2]/==dogovor.nrec and oborot.kauos[3]/==basedoc.nrec and basedoc.cval==klval.nrec )) and klval.simvolv<>'';
.fields
org
dog
ddog
osn
dosn
sumv
valuta
.endfields
.begin
dbeg_1:==date(1,month(cur_date),year(cur_date));
dend_1:=date(last_day(cur_date),month(cur_date),year(cur_date));
rundialog(c_common::getinterval,dbeg_1,dend_1);
end.
список организаций
с ^ по ^
.{table 'val'
.begin
org:=val.katorg.name;
dog:=val.dogovor.nodoc;
ddog:=val.dogovor.ddoc;
osn:=val.basedoc.nodoc;
dosn:=val.basedoc.ddoc;
sumv:=val.basedoc.total;
valuta:=val.klval.simvolv;
end;
^^^^^^^
.}
.endform
Отчет:
.form 'do_s_val'
.nameInlist 'документы-основания с суммой и валютой по до'
.ard
.p 60
.defo landscape
.var
dbeg_1,dend_1:date;
Org:string;
Dog:string;
Ddog:date;
Osn:string;
Dosn:date;
Sumv:double;
Valuta:string;
.endvar
.create view val
As select
Katorg.name,dogovor.ddoc,dogovor.nodoc,basedoc.ddoc,basedoc.nodoc,basedoc.total,klval.simvolv
From
Badedoc,dogovor,klval,oborot,katorg
Where((
'360'/==oborot.scheto and '01'/==oborot.subossch and dbeg_1<<=oborot.datob and dend_1>>=oborot.datob and oborot.kauos[1]/==katorg.nrec and oborot.kauos[2]/==dogovor.nrec and oborot.kauos[3]/==basedoc.nrec and basedoc.cval==klval.nrec )) and klval.simvolv<>'';
.fields
org
dog
ddog
osn
dosn
sumv
valuta
.endfields
.begin
dbeg_1:==date(1,month(cur_date),year(cur_date));
dend_1:=date(last_day(cur_date),month(cur_date),year(cur_date));
rundialog(c_common::getinterval,dbeg_1,dend_1);
end.
список организаций
с ^ по ^
.{table 'val'
.begin
org:=val.katorg.name;
dog:=val.dogovor.nodoc;
ddog:=val.dogovor.ddoc;
osn:=val.basedoc.nodoc;
dosn:=val.basedoc.ddoc;
sumv:=val.basedoc.total;
valuta:=val.klval.simvolv;
end;
^^^^^^^
.}
.endform