Параметры интерфейса Назад В начало Вперед
<параметры интерфейса> ::=
  { parameters <поле> {, <поле>}; }

Параметры передаются "по ссылке", то есть любое изменение значений формальных параметров в интерфейсе приведет к изменению значений фактических параметров в вызывающем интерфейсе. Необходимо, однако учитывать следующие особенности:

cmCancel: begin
  CloseInterface(cmDefault); // - здесь может быть любая
							 // - команда
  stop; // - этот оператор нужен для того, чтобы не вызвался
			 //   стандартный обработчик cmCancel
  end;

Примечания:

1. В этом обработчике после вызова CloseInterface() нельзя выдавать сообщения пользователю с помощью диалоговых окон или функции Message - появившееся окно "съест" внутреннее событие и интерфейс не закроется.

2. Данный метод не сработает, если интерфейс еще не открылся, например, если событие cmInit или cmSetDefult на пустой таблице завершилось аварийно (вызовом Abort).

Пример:

interface pickDepartment doAccept;
  create view as select * from Depart;
  parameters code; // code является полем таблицы Depart
  browse Departs;
	fields name;
  end;
end.
interface employees;
  create view as select * from Depart,Employee
	where ((Employee.dep == Depart.code));
  handleEvent
	cmPick: if (CurField=#Depart_Name)
	RunInterface(PickDepartment, dep);
  end;
end.

Если все-таки требуется получить переданное значение, то необходимо объявить параметром переменную того же типа и при выходе (для окон выбора это событие cmDefault) присвоить переменной значение из буфера.

Приведенный ниже интерфейс при открытии позиционируется на запись с переданным как параметр кодом сотрудника iEmpCode.

interface pickEmployees doAccept;
  create view
	var iEmplCode : comp; // Переменная не является полем
						// физической таблицы
	as select * from Employees;
  parameters iEmplCode;
  browse viewEmployee
	fields
	emplName: protect;
  end;
  handleEvent
	cmInit: if ( modifier getFirst Employees
			where((iEmplCode == Employees.emplCode))=tsOk)
			{}; // ищем сотрудника с переданным на вход кодом
	cmDefault: iEmplCode := emplCode;
				// возвращаем код выбранного сотрудника
  end;
end.