Метод ReSetBounds |
Процедура снимает ограничения, накладываемые условиями подцепки на узел логической таблицы tableN. Стек не ведется. После этого проверяет, попадает ли текущая запись в ограничения, и если нет, то делает текущей первую в ограничениях.
procedure ReSetBounds (tableN : integer);
tableN - номер узла логической таблицы, в котором необходимо снять ограничения (номером узла является идентификатор таблицы узла с префиксом "tn").
В примере описано окно, которое служит для выбора записей из каталога "Отделы". При открытии окна с таблицы "Отделы" снимается ограничение. При этом надо обратить внимание на то, что эта таблица описана как имеющая блок (* в описании подцепки). При закрытии окна ограничение устанавливается обратно. В обработчике cmDefault полю из корневой таблицы присваивается код из той записи подцепляемой таблицы, которая выбрана пользователем.
interface employee; create view employees as select * from Employee, Department where ((Employee.department == Department.code)); window depPick EscClose,doAccept; browse pickBrowser; table Department; fields department_Name : protect; end; handleEvent cmInit: { ResetBounds(tnDepartment); ReReadRecord(#Department); } cmDefault: { set department := department_Code; } cmDone: { SetBounds(tnDepartment); getFirst Department; } end; end; //window end. //interface