Копировать ссылку на страницу Перейти в предыдущий раздел Перейти в следующий раздел

Синтаксис:

procedure OnExecute(

Sender: IUnknown; Context: TISBLContext);

Параметры:

Sender – объект. Возможные значения:
IDataSet – набор данных, у которого сработало событие;
IRequisite – реквизит, у которого сработало событие;
IProcessMessage – сообщение межсистемного процесса, у которого сработало событие;
Context – параметр для определения значения параметра Sender. Возможные значения:
icDataSetEventHandler – параметр Sender имеет значение IDataSet;
icRequisiteChangeEventHandler – параметр Sender имеет значение IRequisite;
icProcessMessageHandler – параметр Sender имеет значение IProcessMessage.

Примечание

Если событие dseOnAnyRequisiteChange сработало для набора данных, то параметр Sender имеет значение IRequisite.

Описание:

При срабатывании события метод вызывает одноименную реализацию метода в веб-доступе, и передает для обработки параметры IS-Builder.

Пример

Логирование изменений значений всех реквизитов набора данных справочника.

 

// Класс реализации внешнего обработчика события

// изменения всех реквизитов главного раздела справочника.

TReferenceChangeHandler = class(TAutoIntfObject, IExternalHandler)

private

 procedure OnExecute(const Sender: IUnknown; Context: TISBLContext); safecall;

end;

 

// Логирование изменений значений реквизитов.

procedure TReferenceChangeHandler.OnExecute(const Sender: IInterface; Context: TISBLContext);

var

 Requisite: IRequisite;

begin

 if Context = icRequisiteChangeEventHandler then

 begin

   Requisite := Sender as IRequisite;

   Logger.Add('Requisite Code ' +

     'NewValue = ' + VarToStr((Sender as IRequisite).Value) +

     'OldValue = ' + VarToStr((Sender as IRequisite).PreviousValue))

 end;

end;

 

// Использование внешнего обработчика.

ReferenceExternalHandler := TReferenceChangeHandler.Create as IExternalHandler;

Reference.DataSet.Events.Events[dseOnAnyRequisiteChange].ExternalHandler := ReferenceExternalHandler;

© Компания DIRECTUM, 2018 Сообщество пользователей DIRECTUM
.navbar > a:hover { background: #FFD73B; }