Синтаксис:
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 |