fro_ost_bill.frm
Код: Выделить всё
.Form 'FRO_OST_BILL'
.Group 'ФРО'
.ard
.NameInList 'Остатки на расчетных счетах'
.p 60
.DEFO LANDSCAPE
.var
i: integer;
summa_d: double;
summa_k: double;
summa_: double;
sch1: string;
datob1: date;
znak: integer;
hiDate: date;
lowDate: date;
tmpDate: date;
.endvar
.create view reportus
as select *
from mytemp
;
.create view vwmytemp
var sch2:string
as select *
from mytemp
where mytemp.sch2=sch1
;
.create view ost
as select katbank.schet1,saldmoun.sums
from katbank,katorg,cashbank,spcash,saldmoun
where
((
katbank.corg==katorg.nrec and
cashbank.cpodr==katbank.nrec and
cashbank.nrec==spcash.ccashbank and
spcash.scheto==saldmoun.scheto and
spcash.subossch==saldmoun.subossch
))
and katorg.code='029141'
and lowDate=saldmoun.datesal
;
.create view t
as select klval.dollar,plpor.nodok,plpor.datob, plpor.sumplat, plpor.sumplatv,plpor.modedoc,plpor.direct,plpor.glava,
if (direct=0,if(glava='02',polbank.schet1,katbank.schet1),if(glava='02',katbank.schet1,polbank.schet1))(FieldName=Sch)
from plpor, katorg, katbank,
synonym katorg polorg, synonym katbank polbank,klval
where
((
plpor.cplat==katorg.nrec and
plpor.cbankplat==katbank.nrec and
plpor.cpol==polorg.nrec and
plpor.cbankpol==polbank.nrec and
substr(katbank.schet1,6,3)==klval.iso
))
and (datob>=lowDate and datob<hiDate)
and (tidkgal=Word(1) or tidkgal=Word(2) or tidkgal=Word(32) or tidkgal=Word(1032) or tidkgal=Word(44) or tidkgal=Word(1044)) //поручения и требования
order by dollar,sch
;
.fields
hiDate
!lowDate
!upcase(reportus.mytemp.valuta)
reportus.mytemp.sch2
reportus.mytemp.ost_in+reportus.mytemp.deb-reportus.mytemp.kred:'P:R'
.endfields
.begin
i:=0;
hiDate:=Cur_Date;
RunDialog(DateOstBill,hiDate);
tmpDate:=Sub_Months(hiDate,1); //вот это правильное определение даты вх сальдо причем цифирку нада ставить наверно 3
//lowDate:=date(1,Month(tmpDate),Year(tmpDate));
lowDate:=date(1,8,2008);//убрать потом
end.
.{table 't' by Sch
.begin
summa_d:=0;
summa_k:=0;
summa_:=0;
end.
.{ by plpor.sumplat
.begin
if plpor.direct=0 then
{
znak:=-1;
if plpor.glava='02' then znak:=1;
}
else
{
znak:=1;
if plpor.glava='02' then znak:=-1;
}
summa_:=plpor.sumplat;
if klval.iso<>'810' then summa_:=plpor.sumplatv;
if znak=-1 then summa_k:=summa_k+summa_
else summa_d:=summa_d+summa_;
sch1:=sch;
datob1:=plpor.datob;
end.
.}
.begin
if (vwmytemp.GetFirst<>tsOk) then
{
vwmytemp.mytemp.sch2 :=sch1;
vwmytemp.mytemp.valuta :=klval.dollar;
vwmytemp.mytemp.datob2 :=datob1;
vwmytemp.mytemp.deb :=summa_d;
vwmytemp.mytemp.kred :=summa_k;
vwmytemp.insert current mytemp;
}
end.
.}
.{table 'ost'
.begin
sch1:=trim(ost.schet1);
vwmytemp.sch2:=sch1;
if (vwmytemp.GetFirst=tsOk) then
{
vwmytemp.mytemp.ost_in :=ost.sums
vwmytemp.update current mytemp;
}
else
{
vwmytemp.mytemp.sch2 :=sch1;
vwmytemp.mytemp.valuta :=t.klval.dollar;
vwmytemp.mytemp.datob2 :=datob1;
vwmytemp.mytemp.deb :=0;
vwmytemp.mytemp.kred :=0;
vwmytemp.mytemp.ost_in :=ost.sums
vwmytemp.insert current mytemp;
}
end.
.}
.{table 'reportus'
.[h
Остатки на расчетных счетах на ^
────────────────────────┬───────────────────────
Счет │ Остаток
│
────────────────────────┴───────────────────────
.]h
^ &'&&&&&&&&&&&&.&&
.}
.endform
Код: Выделить всё
table struct mytemp
(
DatOb2 : date,
Sch2 : string,
Valuta : string,
ost_in: double,
deb : double,
kred: double
)
;