Метод PopBounds (LongInt)
Top  Previous  Next


Назначение  
Процедура восстанавливает ограничения из Where (см. конструкцию Lot языка SQL) либо пустые ограничения, если в Where не было ограничений на эту таблицу, после этого проверяет, попадает ли текущая запись в ограничения, и если нет, то делает текущей первую в ограничениях.  
Описание  
procedure PopBounds (BoundN : LongInt);  
Параметры  
BoundN : LongInt - номер диапазона или логической таблицы. Доступны идентификаторы диапазонов с префиксом "tb" и константы tn<имя узла>.  
Пример  
В данном примере по командам cmSetRestrictions и cmReSetRestrictions будет устанавливаться и сниматься диапазон по дате приема сотрудника. При этом таблица каждый раз перерисовывается так, чтобы видны были только те записи, которые содержатся в диапазоне.  
Interface Example1;  
create view  
Var LoDate,HiDate:Date;  
as select * from Employee  
order by AcceptDate  
// Описание ограничения по отбору записей по  
// диапазону даты  
//  
bounds ByDate=LoDate<<=AcceptDate  
and HiDate>>=AcceptDate;  
browse ViewEmployee;  
show at(,,,10);  
Fields  
Name;  
AcceptDate;  
end;  
screen ScEmployee;  
show at(,11,,);  
fields  
LoDate:NoProtect;  
HiDate:NoProtect;  
buttons  
cmSetRestrictions;  
cmResetRestrictions;  
<<  
Ограничения по дате: .@@@@@@@@ - @@@@@@@  
<. Установить ограничения .> <. Снять ограничения .>  
>>  
end;  
HandleEvent  
// Обработка события установки ограничения на  
// диапазон дат  
cmSetRestrictions: { PushBounds(tbByDate);  
if ((Modifier GetFirst Employee) = tsOk)  
// Обязательно нужно обновить таблицу на экране!!!  
CallToNeighbours(cmSetPos,#Employee);  
}  
cmResetRestrictions:  
{ popBounds(tbByDate);  
// Обработка события снятия ограничения на диапазон  
// дат  
if ((Modifier GetFirst Employee) = tsOk)  
// После снятия ограничения таблицу обязательно  
// обновим!!!  
CallToNeighbours(cmSetPos,#Employee);  
}  
// Обработка событий вставки, удаления и обновления  
// записей  
cmInsertrecord: Insert current Employee;  
cmUpDaterecord: UpDate current Employee;  
cmDeleterecord: Delete current Employee;  
end;  
end.