Метод PopBounds Назад В начало Вперед

Назначение

Процедура восстанавливает ограничения из where (см. конструкцию lot языка SQL) либо пустые ограничения, если в where не было ограничений на эту таблицу, после этого проверяет, попадает ли текущая запись в ограничения, и если нет, то делает текущей первую в ограничениях.

Описание

procedure PopBounds (boundN : longInt);

Параметры

boundN - номер диапазона или логической таблицы. Доступны идентификаторы диапазонов с префиксом "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)
// Обязательно нужно обновить таблицу на экране!!!
		RescanPanel(#Employee);
}
	cmResetRestrictions: {
	popBounds(tbByDate);
// Обработка события снятия ограничения на диапазон
//  дат
	if ((modifier getFirst Employee) = tsOk)
// После снятия ограничения таблицу обязательно
// обновим!!!
		RescanPanel(#Employee);
}
// Обработка событий вставки, удаления и обновления
// записей
	cmInsertrecord: insert current Employee;
	cmUpDaterecord: update current Employee;
	cmDeleterecord: delete current Employee;
  end;
end.