Как сгруппировать

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

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

Ответить
ilshat
Местный житель
Сообщения: 222
Зарегистрирован: 04 июн 2008, 14:35
Откуда: Стерлитамак
Контактная информация:

Как сгруппировать

Сообщение ilshat »

Как мне сгруппировать по валютам вьюшку reportus ?

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
fro_ost_bill.vip

Код: Выделить всё

table struct mytemp
 (
  DatOb2    : date,
  Sch2 : string,
  Valuta : string,
  ost_in: double,
  deb : double,
  kred: double
 )
;
Ответить