Попытался добавить маркер конкретно к своей задаче - ничё не фурычит. Может из-за этого galnet.inc. Как его подключить? Так #include galnet.inc? Или нужно прописать путь сервера где находится #include '\\Srv31\gal810ora\frm_unpack\galFrm\Inc\galnet.inc'?
Код: Выделить всё
//vipinterface ietalon parameters (kgroup:comp;ketalon:comp;ckatstan:comp);
#include galnet.ccm;
#include galnet.csc;
end;
interface ietalon alwaysReturn;
Show At (,,93,25);
var ketalon,kgroup,ckatstan:comp;
res:word;
mcname:string;
etalmc:string;
groupmcname:string;
idwindow:longInt;
Markers : longInt;
FieldMarkers : longInt;
IndexNo : longInt;
Markers2 : longInt;
FieldMarkers2 : longInt;
IndexNo2 : longInt;
getnrec : longInt;
i:integer;
j:longint;
table struct marktable
(
nRec : comp,
cmcnrec: comp
)
with index
(
mark01 = nRec(Unique,Surrogate),
mark02 = cmcnrec
);
function funrec:comp; forward;
create view
var wnrec:comp
(MarkerStr2,MarkerStr)
as select
if (SearchMarker(Markers2, k4.nrec, IndexNo2) = True, 'v', ' '),
if (SearchMarker(Markers, katmc.nrec, IndexNo) = True, 'v', ' '),
ppkatstan.name,katmc.name from ppkatstan,ppkatstanmc,katmc, katmc k4(katmc02)
where((wnrec==ppkatstan.atl_nrec and
ppkatstan.atl_nrec==ppkatstanmc.cppkatstan
and ppkatstanmc.cmc ==katmc.nrec and 0==k4.isarch));
create view etalon
as select /*etalon(ppkatstan.atl_nrec),*,*/k1.name,ppkatstan.name,*//,groupmc.name,*
from katmc k1,PPKATSTAN,groupmc
where ((
ppkatstan.cmc==k1.nrec
and (7=k1.isarch)
and groupmc.nrec==ppkatstan.cgroupmc));
parameters kgroup,ketalon,ckatstan;
function funrec :comp;
{
funrec:=ckatstan;
//message(ckatstan);
}
tableevent table ppkatstanmc
cmDeleteRecord :
{
delete current ppkatstanmc;
}
end;
window wmc 'Выбор реальных МЦ';
function MyTable_Add(add_n: comp): boolean;
{
//clearbuffer(#mytable);
if (getFirst marktable where ((add_n == marktable.cmcNrec)) = tsOk)
{
delete current marktable;
}
else
{
marktable.cmcNrec := add_n;
if insert current marktable <> tsOk
{
message(''#3'Ошибка добавления записи в таблицу MyTable');
MyTable_Add := false;
}
else
{
MyTable_Add := true;
//message(add_n+' '+add_name);
}
}
}
panel pwMC
browse bwMC (,,Sci1478EscIns)
table k4,cartesian;
//recMarker {k4.nrec};
fields
MarkerStr2 '' :[1], Skip;
k4.name 'Реальные МЦ':protect;
end;
handleEvent
cmDoMarkUnMark :
{
InvertMarker(Markers2, k4.nrec);
if ((GetNext k4) = tsOk) {};
RescanPanel(#k4);
}
cmUnSelAll:
{
ClearMarker(Markers2);
RescanPanel(#k4);
}
cmSelAll: {
StartNewVisual( vtRotateVisual, vfTimer, 'Помечаю все', 1);
PushPos(#k4);
if ((Modifier GetFirst k4) = tsOk)
begin
do
begin
InsertMarker(Markers, k4.nrec);
NextVisual;
end;
while (Modifier GetNext k4 = tsOk)
end;
PopPos(#k4);
StopVisual('', 0);
RescanPanel(#k4);
}
cmDoInvertMark: {
StartNewVisual( vtRotateVisual, vfTimer, 'Инвертирую список', 1);
PushPos(#k4);
if ((Modifier GetFirst k4) = tsOk)
begin
do
begin
InvertMarker(Markers, k4.nrec);
NextVisual;
end;
while (Modifier GetNext k4 = tsOk)
end;
PopPos(#k4);
StopVisual( '', 0);
RescanPanel(#k4);
}
end;
end;
handleEvent
cmInit:
{
Markers2 := InitMarker('spisokmc2', 2, 1000, 100);
FieldMarkers2 := InitMarker('', 2, 20, 20);
}
cmClose:
{
message(GetMarkerCount(Markers2));
_loop katmc
{
//GetMarker(Markers2,i,k4.nrec)
if getfirst ppkatstanmc where((ckatstan==ppkatstanmc.cppkatstan))=tsOk
{
if (katmc.nrec=ppkatstanmc.cmc)
{
message('№1= '+katmc.nrec);
j:=GetMarkerCount(Markers2) ;
for (i := 0; i <GetMarkerCount(Markers2) ; i++)
{
GetMarker(Markers2,i,getnrec);
message(getnrec);
if (getnrec<>katmc.nrec)
{
delete current ppkatstanmc;
rescanpanel(#ppkatstan);
rescanpanel(#ppkatstanmc);
rescanpanel(#katmc);
}
}
}
}
else
{
ppkatstanmc.cmc:=katmc.nrec;
ppkatstanmc.cppkatstan:=ckatstan;
insert current ppkatstanmc;
rescanpanel(#ppkatstan);
rescanpanel(#ppkatstanmc);
rescanpanel(#katmc);
}
}
}
cmDone:
{
DoneMarker(Markers2, 'spisokmc2');
DoneMarker(FieldMarkers2, '');
}
end;
end;
panel petalon
screen setalon (,,Sci1478EscIns)
show at (,,,8);
fields
mcname:noprotect;
etalmc:protect,pickbutton;
groupmcname:protect,pickbutton;
buttons
cmRealMC;
<<
МЦ .@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Эталон МЦ .@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Группа МЦ .@@@@@@@@@@@@@@@@@@@@@@@@@@@@
<.~в~ыбор МЦ.>
>>
end;
browse betalon2 (,,Sci1478EscIns);
show at (,9,,);
table ppkatstan,cartesian;
//recMarker {katmc.nrec};
fields
MarkerStr '' :[1], Skip;
katmc.name:protect;
end;
handleevent
cmCheckField:
{
case CurField of
#mcname:
{
if etalon.getfirst ppkatstan where((ckatstan==ppkatstan.atl_nrec))=tsok
{
etalon.ppkatstan.name:=mcname;
update current ppkatstan;
}
rescanpanel(#ppkatstan);
}
end;
}
cmDoMarkUnMark:
{
InvertMarker(Markers, katmc.nrec);
if ((GetNext katmc) = tsOk) {};
RescanPanel(#katmc);
}
cmUnSelAll:
{
ClearMarker(Markers);
RescanPanel(#katmc);
}
cmSelAll: {
StartNewVisual( vtRotateVisual, vfTimer, 'Помечаю все', 1);
PushPos(#katmc);
if ((Modifier GetFirst katmc) = tsOk)
begin
do
begin
InsertMarker(Markers, katmc.nrec);
NextVisual;
end;
while (Modifier GetNext katmc = tsOk)
end;
PopPos(#katmc);
StopVisual('', 0);
RescanPanel(#katmc);
}
cmDoInvertMark: {
StartNewVisual( vtRotateVisual, vfTimer, 'Инвертирую список', 1);
PushPos(#katmc);
if ((Modifier GetFirst katmc) = tsOk)
begin
do
begin
InvertMarker(Markers, katmc.nrec);
NextVisual;
end;
while (Modifier GetNext katmc = tsOk)
end;
PopPos(#katmc);
StopVisual( '', 0);
RescanPanel(#katmc);
}
end;
end;
handleevent
cmInit:
{
Markers := InitMarker('spisokmc', 2, 1000, 100);
FieldMarkers := InitMarker('', 2, 20, 20);
//FieldMarkers := InitMarker('', 2, 20, 20);
idwindow:=wmc;
// message(ckatstan);
if getfirst ppkatstan where ((ckatstan==ppkatstan.atl_nrec))=tsok
{
// mcname:=ppkatstan.name;
wnrec:=ppkatstan.atl_nrec;
}
if etalon.getfirst ppkatstan where ((ckatstan==ppkatstan.atl_nrec))=tsok
{
mcname:=etalon.ppkatstan.name;
ckatstan:=etalon.ppkatstan.atl_nrec;
}
if etalon.getfirst k1 where ((ketalon==k1.nrec))=tsok
{
etalmc:=etalon.k1.name;
ketalon:=etalon.k1.nrec;
}
if etalon.getfirst groupmc where ((kgroup==groupmc.nrec))=tsok
{
groupmcname:=etalon.groupmc.name;
ckatstan:=etalon.groupmc.nrec;
}
rescanpanel(setalon);
rescanpanel(#etalon.ppkatstan);
rescanpanel(#etalon.k1);
rescanpanel(#etalon.groupmc);
rescanpanel(#katmc);
rescanpanel(betalon2);
}
cmPick:
{
UpdateTable();
case CurField of
#etalmc:
{
res:= RunInterface(PickKatMC,ketalon);
ppkatstan.cmc:=ketalon;
if etalon.getfirst k1 where ((ketalon==k1.nrec))=tsOk
{
etalmc:=etalon.k1.name;
ketalon:=etalon.k1.nrec;
}
rescanpanel(#etalon.k1);
rescanpanel(#ppkatstan);
}
#groupmcname:
{
res:= RunInterface(PickGroupMC,kgroup);
ppkatstan.cgroupmc:=kgroup;
if etalon.getfirst groupmc where ((kgroup==groupmc.nrec))=tsok
{
groupmcname:=etalon.groupmc.name;
ckatstan:=etalon.groupmc.nrec;
}
rescanpanel(#etalon.groupmc);
rescanpanel(#ppkatstan);
}
end;
}
cmRealMC:
{
RunWindowModal(wmc);
}
cmClose:
{
message(GetMarkerCount(Markers));
}
cmDone:
{
DoneMarker(Markers, 'spisokmc');
DoneMarker(FieldMarkers, '');
}
end;
end.