Метод
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.
|