Сделала свой интерфейс такого вида
Код: Выделить всё
Screen ScrSpis;
Show At(,,,);
Fields
dfrom : ['DD/MM/YYYY'],noprotect;
dto : ['DD/MM/YYYY'],noprotect;
NameMVZ (,,sci13Esc): pickbutton,protect;
NameMOL (,,sci13Esc): pickbutton,protect;
Vyvod : noProtect;
Buttons
cmOk;
<<
`Период с ` .@@@@@@@@@@ ` по ` .@@@@@@@@@@
`МВЗ` .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
`МОЛ` .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
`Включать в отчет списание `
[.] Спецодежды`
[.] Инструмента и спецоснастки`
<. Печать .>
>>
End;
Код: Выделить всё
cmInit : {
delete all pick;
dfrom:=date(01,month(Sub_Months(cur_date,1)),year(Sub_Months(cur_date,1)));
dto:=date(last_day(Sub_Months(cur_date,1)),month(Sub_Months(cur_date,1)),year(Sub_Months(cur_date,1)));
NameMVZ:='По всем подразделениям';
NameMol:='По всем МОЛам';
};// cmInit
Код: Выделить всё
cmPick:
{ //пики
StartNewVisual(vtRotateVisual,vfTimer,'Отбор по параметрам...',0);
{
var kol:integer; kol:=0;
if (CurField= #NameMVZ)
{
Delete pickPodr where ((word(11)==PickPodr.wList));
kol:=0;
MarkPodr:=0;
MarkPodr := InitMarker('MarkPodr' , 8, 100, 10);
if (RunInterface('GetSomePodr')<>cmCancel)
{ Message('интерфейс выбора подразделения');
if (ViewVed.getfirst pickPodr where ((word(11) ==PickPodr.wList))=tsok) do
{
kol:=kol+1;
Message(kol);
InsertMarker(MarkPodr,PickPodr.crec);
}while (ViewVed.getnext pickPodr where ((word(11) ==PickPodr.wList))=tsok)
if kol = 1 then {NameMVZ:=KatPodrP.Name;}
else NameMVZ:='Вы выбрали '+kol+' подразделений';
} //if runinterface<>cmcancel
else
{
NameMVZ:='По всем подразделениям';
}
ReScanPanel(ScrSpis);
}//curfield
}//startNewVisual
stopvisual('',0);
}//cmPick
Проблема в следующем - если я сначала выбираю подразделения и потом меняю даты - то всё отлично. Если сначала меняю даты, то он потом не видит какие подразделения выбраны. В интерфейс выбора заходит, но количество выбранных показывает ноль..При этом если снова запустить интерфейс, то прошлое выбранное будет помечено галочкой... в чем может быть причина такого странного поведения?