Почти сделал интерфейс, в котором записи помечаются нормально и маркер, я надеюсь создаётся тоже нормально. Осталось дописать выход по нажатию Enter- вот здесь нужна подсказка. В интерфейсе объявлена панель, в которой делается пометка, вопрос- как нормально выйти из обработчика панели, а потом и из обработчика главного окна? Код сейчас такой:
Код: Выделить всё
Interface McSaldo 'Просмотр Мс' escclose,blue,AlwaysReturn, doAccept;
Show at (1,1,150,40);
... //Здесь view и прочая..
Panel Panel_ ;
Table t_SldDt;
Screen scMain_
show at (, , , 5);
fields
dsld: noProtect;
Buttons
cmSetDate,,,;
cmSetAll,,,;
<<
<. Остатки МЦ на дату: .> .@@@@@@@@@@
<. Показать все МЦ: .>
>>
end;
browse bmnpl (,,sci178InsPM) ;
show at (,6 , , );
fields
t_SldDt.dSaldoSt1 'Дата остатков': [10], protect, {font = {bold = if(FoundMarker(_MarkerMcSaldo, t_SldDt.cMc1), true, false);}};
t_SldDt.McName1 'Наименование' : [40], protect, {font = {bold = if(FoundMarker(_MarkerMcSaldo, t_SldDt.cMc1), true, false);}};
t_SldDt.McKod1 'Код' : [10], protect, {font = {bold = if(FoundMarker(_MarkerMcSaldo, t_SldDt.cMc1), true, false);}};
t_SldDt.PodrMame1 'Склад' : [20], protect, {font = {bold = if(FoundMarker(_MarkerMcSaldo, t_SldDt.cMc1), true, false);}};
t_SldDt.MolName1 'МОЛ' : [20], protect, {font = {bold = if(FoundMarker(_MarkerMcSaldo, t_SldDt.cMc1), true, false);}};
t_SldDt.EdIzm1 'Ед. изм.' : [10], protect, {font = {bold = if(FoundMarker(_MarkerMcSaldo, t_SldDt.cMc1), true, false);}};
t_SldDt.Kol1 'Количество' : [10], protect, {font = {bold = if(FoundMarker(_MarkerMcSaldo, t_SldDt.cMc1), true, false);}};
t_SldDt.Cena1 'Цена' : [10], protect, {font = {bold = if(FoundMarker(_MarkerMcSaldo, t_SldDt.cMc1), true, false);}};
end;
HandleEvent //Обработчик Panel_
cmMarkUnMark:
{
InvertMarker(_MarkerMcSaldo, t_SldDt.cMc1);
RedrawCurrentAndGo(bmnpl,true);
RescanPanel(#t_SldDt);
}
cmSetDate:
{
...}
cmSetAll:
{
...
}
cmCancel:
{
closeinterface(cmDone);
mtChangeRefCount( #t_slddt, -1 );
}
cmDefault:
{
if(not FoundMarker(_MarkerMcSaldo, t_slddt.cmc1))
InsertMarker(_MarkerMcSaldo, t_slddt.cmc1);
DoneMarker (_MarkerMcSaldo, 'McChose');
abort;
}
end; // HandleEvent панели
end; // Panel
HandleEvent //Обработчик главного окна
cmInit:
{
...
}
cmDefault: //непонятно, как сюда нормально перейти
{
abort;
}
end; // HandleEvent
end. // interface
Хочется после пометки записей выйти по одному нажатию Enter.