Помогите отловить поле

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

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

Ответить
Sytin
Постоянный обитатель
Сообщения: 159
Зарегистрирован: 28 сен 2005, 19:48
Откуда: mos
Контактная информация:

Помогите отловить поле

Сообщение Sytin »

Есть интерфейс:
Interface RedaktZay888 'Редактирование заявки' (,,sci178InsPM) AlwaysReturn;
Show at(1,1,200,50);
create view
var
NrecZay:comp;
NewZay:boolean;

DescrZay:string;
DateZay:date;
NomZay:string;
OrgZay:string;
OrgNrec:comp;
PunktZay:string;
PunktNrec:comp;
as select *
from KatZay,KatOrg,MarPunkt,TabSpSort
where ((
NrecZay==KatZay.nrec and
KatZay.cOrg==KatOrg.nrec and
KatZay.cMarPunkt==MarPunkt.nrec and
KatZay.nrec==TabSpSort._cKatZay
));
parameters
NrecZay,NewZay;

screen MScr;
show at(1,1,198,2);
fields
DescrZay:Protect;
DateZay:NoProtect;
NomZay:NoProtect;
OrgZay:Protect,PickButton;
PunktZay:Protect,PickButton;
<<
дескр .@@@ Дата .@@@@@@@@@ Номер .@@@@@@@@@ Контрагент .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ п.погр. .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
>>

end;

Panel PSpZay;
Table TabSpSort;
browse BSpZay;
show at(1,3,198,48);
fields
TabSpSort._MCName 'МЦ' : [25],Protect;
TabSpSort._OtpEdName 'о.ед' : [4],Skip;
TabSpSort._KolOtp 'кол.о.ед' : [8],NoProtect;
TabSpSort._EdName 'у.ед' : [4],Skip;
TabSpSort._Kol 'кол.у.ед' : [8],NoProtect;
TabSpSort._OstSkl 'остат' : [8],Protect;
TabSpSort._ResSkl 'резерв' : [8],Protect;
TabSpSort._CenaPr 'ц.б.ндс' : [8],Protect;
TabSpSort._CenaPrNds 'ц.ндс' : [8],Protect;
if (TabSpSort._TipFas=1,'v','') 'фас' : [3],Protect;
if (TabSpSort._TipKod=1,'v','') 'ш-к' : [3],Protect;

end;

HandleEvent
cmMarkUnMark:{
message(Target);
if (CurField=10){
if(TabSpSort._TipFas=0)TabSpSort._TipFas:=1;
else TabSpSort._TipFas:=0;
update current TabSpSort;
}


RescanPanel(BSpZay);
}
end;

end;


function UpdateZayavka(i:integer):boolean;
{
KatZay.DZay:=DateZay;
KatZay.NZay:=NomZay;
KatZay.cOrg:=OrgNrec;
KatZay.cMarPunkt:=PunktNrec;
KatZay.Descr:=DescrZay;
Update current KatZay;
UpdateZayavka:=TRUE;
}


HandleEvent
cmInit:{
if (NewZay=TRUE){
RunInterface(SelSklPr,NrecZay);
RunInterface(CheckLndTab,NomZay);
DescrZay:=SubStr(UserName(),1,3);
DateZay:=cur_date;
RunInterface(CreateTabSP,NrecZay);
ReScanPanel(BSpZay);
}
if (GetFirst KatZay=tsok){}
if (not NewZay) {
DescrZay:=KatZay.descr;
DateZay:=KatZay.DZay;
NomZay:=KatZay.NZay;
}
OrgZay:=KatOrg.name;
PunktZay:=MarPunkt.name;

}
cmPick:{
if (CurField=#OrgZay) {
RunInterface(SelOrg888,OrgZay,OrgNrec);
ReScanPanel(Mscr);
}
if (CurField=#PunktZay) {
RunInterface(SelPunkt888,PunktZay,PunktNrec);
ReScanPanel(Mscr);
}
}
cmCancel:{
UpdateZayavka(1);
}
cmClose:{
UpdateZayavka(1);
}
end;

end.

Как мне в событии cmMarkunMark отловить, какой столбец в данный момент активный. Мне надо чтобы 10 и 11 поле в browse BSpZay помечались при нажатии insert, когда активно это поле.
CurField и Target возвращают -1 для обоих полей.
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

в select пропишите
if (TabSpSort._TipFas=1,'v','') (fieldname=Picked)
в броусе соотв. прошите Picked
ну обращайтесь к полю как
case curfield of
#Picked : {

}
end;
Sytin
Постоянный обитатель
Сообщения: 159
Зарегистрирован: 28 сен 2005, 19:48
Откуда: mos
Контактная информация:

Сообщение Sytin »

Спасибо большое.
Ответить