В этой статье:
Веб-формы и кластер BI-серверов
Использование веб-форм в регламентных отчётах
Использование веб-форм для обработки операций пользовательских классов
Из-за используемых технологий и имеющихся ограничений разработки возникает ряд особенностей, которые необходимо учитывать при использовании веб-форм. Список особенностей представлен ниже.
Если для разрабатываемого веб-приложения формируется инфраструктура, содержащая кластер BI-серверов, то для корректной работы веб-форм в многопользовательском режиме потребуется дополнительная настройка балансировщика HAProxy.
Если по пользовательской кнопке открывается веб-форма, то в системе в рамках пользовательской сессии фиксируется активный регламентный отчёт. Активный отчёт возвращает статическое свойство PrxReport.ActiveReport, доступное в языке Fore. При использовании нескольких веб-форм, вызванных из разных отчётов, в рамках одной сессии активным отчётом будет установлен тот, из которого произошёл последний вызов веб-формы вплоть до её закрытия.
При наличии нескольких одновременно открытых регламентных отчётов и веб-форм свойство PrxReport.ActiveReport может отработать некорректно, так как вернёт последний отчёт, из которого открывалась веб-форма. Изменить активный отчёт можно с помощью операции SetActiveReport.
Для работы с отчётом из веб-формы рекомендуется сохранять активный отчёт в глобальную переменную, объявленную на уровне класса веб-формы. Запись активного отчёта в переменную осуществлять в событии onShow:
Class TESTWebForm: WebForm
activeRep: IPrxReport;
activeSheet: IPrxSheet;
Sub TESTWebFormOnShow;
Begin
activeRep := PrxReport.ActiveReport;
activeSheet := activeRep.ActiveSheet;
// Дальнейшая работа с отчётом
End Sub TESTWebFormOnShow;
End Class TESTWebForm;
В веб-приложении для операций пользовательских классов в качестве обработчиков могут быть назначены веб-формы. Для таких веб-форм в обработчик события OnShow может быть добавлен дополнительный параметр: OnShow(Args: ISortedList). При выполнении операции в аргументах события Args будут доступны элементы со следующими ключами:
Values. Содержит значения параметров, переданных для выполнения операции. Тип значения - IMetabaseObjectParamValues;
Descriptor. Описание объекта пользовательского класса, для которого выполняется операция. Тип значения - IMetabaseObjectDescriptor;
Operation. Наименование выполняемой операции. Тип значения - String.
Данные элементы позволяют получить доступ к объекту пользовательского класса и организовать необходимую работу с использованием всех доступных компонентов и визуального интерфейса веб-форм.
Пример класса веб-формы, предназначенной для обработки операций пользовательского класса:
Class TESTWebForm: WebForm
bSave: WebButton;
bClose: WebButton;
MDesc: IMetabaseObjectDescriptor;
Sub TESTWebFormOnShow(Args: ISortedList);
Var
Descr: IMetabaseObjectDescriptor;
ParamVals: IMetabaseObjectParamValues;
Operation: String;
Begin
Descr := Args.Item("Descriptor");
ParamVals := Args.Item("Values");
Operation := Args.Item("Operation");
MDesc := Descr;
End Sub TESTWebFormOnShow;
Sub bSaveOnClick;
Begin
MDesc.SaveDescriptor;
Self.Close;
End Sub bSaveOnClick;
Sub bCloseOnClick;
Begin
Dispose MDesc;
Self.Close;
End Sub bCloseOnClick;
End Class TESTWebForm;
См. также: