Помогите с интерфейсом
Добавлено: 30 ноя 2010, 19:00
Ко клику на кнопке cmAdd вызываю свой фейс, заполняется маркер со значениями, заполняю значениями из маркера свою времянку и хочу это все отобразить, но при попытке сделать rescanpanel(#oborot) или rereadrecord(bmain) все подвисает.
Подскажите где я перемудрил или как правильно это все написать.
Подскажите где я перемудрил или как правильно это все написать.
Код: Выделить всё
#include galnet.ccm
#include galnet.csc
end;
interface add_avizo 'add avizo' cyan,DoAccept;
var
d1:date;
p_names,nodoc, CurDescr: string;
pdr:comp;
CurDescr_c:comp;
sum:double;
oborot_marker,mid:longint;
table struct tmain
(
oborot_nrec: comp
)
with index
(
i0 = oborot_nrec
)
;
create view vmain
as select * from tmain,oborot, katpodr katpodr_deb, katpodr katpodr_kr
where
((
tmain.oborot_nrec/==oborot.nrec
and oborot.KODSPO == katpodr_deb.nrec
and oborot.KODSPK == katpodr_kr.nrec
));
create view vtemp as select * from tmain (memory);
create view v_ob
as select * from oborot where if(searchmarker(oborot_marker, oborot.nrec, mid), 1, 0)=1;
create view vpdr
as select * from katpodr where nrec=pdr;
parameters pdr;
screen smain;
show at (, 1, , 5);
fields
CurDescr:pickbutton,protect;
nodoc:noprotect;
d1:pickbutton,noprotect;
p_names:pickbutton,protect;
sum:noprotect;
buttons
cmAdd;
cmDel;
cmPrint;
<<
„ҐбЄа ь ¤®Єг¬Ґв ‚лЇЁб
.@@@@ .@@@@@@@@@@ .@@@@@@@@@@
Џ®¤а §¤Ґ«ҐЁҐ .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
‘㬬 .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
<. „®Ў ўЁвм .> <. “¤ «Ёвм .> <. ЏҐз вм .>
>>
end;
browse bmain('Avizo',,sci148Ins);
show at (, 6, , );
table oborot;
fields
vmain.oborot.datob '„ в '('Datob',,):protect,{Font={Color=0}},[3];
vmain.oborot.nodok 'ь ¤®Єг¬Ґв '('Nodok',,):protect,{Font={Color=0}},[3];
vmain.oborot.SCHETO+' '+vmain.oborot.SUBOSSCH+' '+vmain.katpodr_deb.name '„ҐЎҐв'('Debet',,):protect,{Font={Color=0}},[10];
vmain.oborot.SCHETK+' '+vmain.oborot.SUBSCHK+' '+vmain.katpodr_kr.name 'ЉаҐ¤Ёв'('Kredit',,):protect,{Font={Color=0}},[10];
vmain.oborot.SUMOB '‘㬬 '('sum',,):protect,{Font={Color=0}},[5];
vmain.oborot.SUMVALUT '‚ ў «овҐ'('val',,):protect,{Font={Color=0}},[5];
end;
HandleEvent
cmInit:
{
vtemp.delete all tmain;
d1:=Cur_Date;
CurDescr := sGetTune('USER.DESCR');
if (vpdr.getfirst katpodr=tsok){p_names:=vpdr.katpodr.name;}
nodoc:=substr(vpdr.katpodr.kod,1,3);
oborot_marker:= initmarker('oborot_marker',8,0,1);
}
cmPick:
{
PopAllConditions;
if curfield=#p_names
{
runinterface('Z_KATPODR::GetAnyPodr', pdr,4);
if (vpdr.getfirst katpodr=tsok){p_names:=vpdr.katpodr.name;}
nodoc:=substr(vpdr.katpodr.kod,1,3);
}
}
cmAdd:
{
if (vpdr.getfirst katpodr=tsok)
{
if (substr(vpdr.katpodr.kod,1,3)='057'){runinterface('get_oborot', oborot_marker,date(1,month(d1),year(d1)),date(Last_Day(d1),month(d1),year(d1)),00010000000001DEh);}
if (substr(vpdr.katpodr.kod,1,3)='058'){runinterface('get_oborot', oborot_marker,date(1,month(d1),year(d1)),date(Last_Day(d1),month(d1),year(d1)),00010000000001E8h);}
if (substr(vpdr.katpodr.kod,1,3)='060'){runinterface('get_oborot', oborot_marker,date(1,month(d1),year(d1)),date(Last_Day(d1),month(d1),year(d1)),00010000000001F9h);}
if (substr(vpdr.katpodr.kod,1,3)='001' or substr(vpdr.katpodr.kod,1,3)='046'){runinterface('get_oborot', oborot_marker,date(1,month(d1),year(d1)),date(Last_Day(d1),month(d1),year(d1)),0001000000000039h);}
if (substr(vpdr.katpodr.kod,1,3)='055'){runinterface('get_oborot', oborot_marker,date(1,month(d1),year(d1)),date(Last_Day(d1),month(d1),year(d1)),0001000000000201h);}
if (substr(vpdr.katpodr.kod,1,3)='062'){runinterface('get_oborot', oborot_marker,date(1,month(d1),year(d1)),date(Last_Day(d1),month(d1),year(d1)),0001000000000210h);}
v_ob._loop oborot
{
vtemp.insert into tmain
set
oborot_nrec:=v_ob.oborot.nrec;
}
//rescanpanel(#oborot);
rereadrecord(bmain);
}
}
End;
end.