OperationMode: UiMetabaseObjectOperationMode;
Свойство OperationMode определяет режим подключения объекта.
Если свойству установлено значение External, то в свойстве Instance необходимо указать открытый экземпляр объекта. При активации компонента указанный объект не будет переоткрыт, он будет доступен в том виде, в каком находится в текущий момент.
Для выполнения примера предполагается наличие формы, расположенной на ней кнопки с наименованием «Button1», компонента UiErAnalyzer с наименованием «UiErAnalyzer1». В «UiErAnalyzer1» загружен какой-либо экспресс-отчет. Также на форме расположены компоненты, используемые для редактирования экспресс-отчета.
Sub Button1OnClick(Sender: Object; Args: IMouseEventArgs);
Var
MB: IMetabase;
CrInfo: IMetabaseObjectCreateInfo;
ExspressReport: IEaxAnalyzer;
Begin
If UiErAnalyzer1.OperationMode = UiMetabaseObjectOperationMode.Open Then
MB := MetabaseClass.Active;
CrInfo := MB.CreateCreateInfo;
CrInfo.ClassId := MetabaseObjectClass.KE_CLASS_EXPRESSREPORT;
CrInfo.Id := "Copy_" + UiErAnalyzer1.Object.Id;
CrInfo.Parent := MB.Root;
ExspressReport := MB.CreateObject(CrInfo).Edit As IEaxAnalyzer;
ExspressReport.CopyFrom(UiErAnalyzer1.Instance As IEaxAnalyzer);
(ExspressReport As IMetabaseObject).Save;
Else
(UiErAnalyzer1.Instance As IMetabaseObject).Save;
End If;
End Sub Button1OnClick;
При нажатии на кнопку если отчет, загруженный в «UiErAnalyzer1», подключен без возможности сохранения изменений в исходный объект, то в корневом каталоге репозитория будет создана и сохранена копия отчета со всеми внесенными изменениями.
Для выполнения примера предполагается наличие формы, расположенной на ней кнопки с наименованием «Button1», компонента UiErAnalyzer с наименованием «UiErAnalyzer1». Также на форме расположены компоненты, используемые для редактирования экспресс-отчета.
Sub Button1OnClick(Sender: Object; Args: IMouseEventArgs);
Var
ExpressReport: IEaxAnalyzer;
Begin
//...
ExpressReport := //...Получение
экземпляра открытого экспресс-отчета
//...
//Различные действия по предварительной настройке экспресс-отчета
//...
//Подключение отчета для доступа к нему на форме
UiErAnalyzer1.OperationMode := UiMetabaseObjectOperationMode.External;
UiErAnalyzer1.Instance := ExpressReport;
UiErAnalyzer1.Active := True;
End Sub Button1OnClick;
Указанный пример в общем виде демонстрирует режим подключения объекта External на примере подключения открытого экземпляра экспресс-отчета. При установке свойству Active значения True отчет переоткрыт не будет.
См. также: