Стандартный фейс Vschetb
Добавлено: 02 май 2004, 01:11
Хочу сделать автоматическое создание накладной по введенному док.-основанию,но никак не могу получить Nrec нового док.-основания. Знатоки помогите (версия 5.2):
Interface Osn 'Автоматиское создание накладной по док.-основанию' DoAccept,EscClose,cyan;
show at(1,1,90,30);
Create View tt
Var
metka:string;
dat1,dat2 : date;
nr1,nr2,nr3,nr4,basenrec:comp;
As Select
* From basedoc,katsopr,stepdoc
! where ((
! basedoc.nrec==stepdoc.cbasedoc and
! stepdoc.nrec==katsopr.cstepdoc and
! word(101)/==basedoc.viddoc
! and (basedoc.direct=2)
! ))
;
! Создаем представление. В данном случае возможно любое.
parameters dat1,dat2;
! Передаваемые параметры формы
screen vibdat
!show at(1,1,90,30);
buttons
cm_kn1;
<<
<. Счет-->накладная .>
>>
end;
handleevent
cm_kn1:
{RunInterFace('Vschetb',basenrec);
Message(double(basedoc.nrec));
if getfirst basedoc
where ((
basedoc.nrec==stepdoc.cbasedoc and
(basedoc.nrec=basenrec)
! word(101)/==basedoc.viddoc
! and (basedoc.direct=2)
))
=tsok
! then Do
then nr1:=stepdoc.nrec;
! nr1:=basenrec;
! While getnext basedoc where ((
! word(101)/==basedoc.viddoc and
! (basedoc.direct=2)
! ))=tsok;
insert katsopr set tipsopr:=word(2),dsopr:=date(01,05,2004),
yearsopr:=word(2004),nsopr:='123___',vidsopr:=word(101),
corg:=comp(281474976711272),
cgruzfrom:=comp(281474976711272),
corgbase:=comp(281474976711272),
vhodnal:=word(1),
summa:=123456;
katsopr.cstepdoc:=nr1;
nr2:=katsopr.nrec;
update current katsopr;
insert spsopr set dsopr:=date(01,05,2004),
vidsopr:=word(101),
cmcusl:=comp(281474976715139),
cotped:=comp(281474976715184),
prmc:=1,kol:=10,price:=100,
kolfact:=10,kolopl:=10,sumnds:=200;
spsopr.csopr:=nr2;
update current spsopr;
katsopr.summa:=spsopr.price+spsopr.sumnds;
update current katsopr;
RunInterFace('Soprdocb',word(101),nr2);}
end; // HandleEvent
end. // interface
Interface Osn 'Автоматиское создание накладной по док.-основанию' DoAccept,EscClose,cyan;
show at(1,1,90,30);
Create View tt
Var
metka:string;
dat1,dat2 : date;
nr1,nr2,nr3,nr4,basenrec:comp;
As Select
* From basedoc,katsopr,stepdoc
! where ((
! basedoc.nrec==stepdoc.cbasedoc and
! stepdoc.nrec==katsopr.cstepdoc and
! word(101)/==basedoc.viddoc
! and (basedoc.direct=2)
! ))
;
! Создаем представление. В данном случае возможно любое.
parameters dat1,dat2;
! Передаваемые параметры формы
screen vibdat
!show at(1,1,90,30);
buttons
cm_kn1;
<<
<. Счет-->накладная .>
>>
end;
handleevent
cm_kn1:
{RunInterFace('Vschetb',basenrec);
Message(double(basedoc.nrec));
if getfirst basedoc
where ((
basedoc.nrec==stepdoc.cbasedoc and
(basedoc.nrec=basenrec)
! word(101)/==basedoc.viddoc
! and (basedoc.direct=2)
))
=tsok
! then Do
then nr1:=stepdoc.nrec;
! nr1:=basenrec;
! While getnext basedoc where ((
! word(101)/==basedoc.viddoc and
! (basedoc.direct=2)
! ))=tsok;
insert katsopr set tipsopr:=word(2),dsopr:=date(01,05,2004),
yearsopr:=word(2004),nsopr:='123___',vidsopr:=word(101),
corg:=comp(281474976711272),
cgruzfrom:=comp(281474976711272),
corgbase:=comp(281474976711272),
vhodnal:=word(1),
summa:=123456;
katsopr.cstepdoc:=nr1;
nr2:=katsopr.nrec;
update current katsopr;
insert spsopr set dsopr:=date(01,05,2004),
vidsopr:=word(101),
cmcusl:=comp(281474976715139),
cotped:=comp(281474976715184),
prmc:=1,kol:=10,price:=100,
kolfact:=10,kolopl:=10,sumnds:=200;
spsopr.csopr:=nr2;
update current spsopr;
katsopr.summa:=spsopr.price+spsopr.sumnds;
update current katsopr;
RunInterFace('Soprdocb',word(101),nr2);}
end; // HandleEvent
end. // interface