IMetabaseObject.Assign

Синтаксис

Assign(Value: IMetabaseObject);

Assign(Value: Prognoz.Platform.Interop.Metabase.IMetabaseObject);

Параметры

Value. Объект репозитория, из которого берутся данные.

Описание

Метод Assign осуществляет копирование данных из источника, передаваемого посредством параметра Value.

Комментарии

Данный метод нельзя использовать для копирования объектов, имеющих вложенные объекты. Наличие вложенных объектов можно установить, получив значение свойства IMetabaseObjectDescriptor.Children. Вложенными объектами, копирование которых невозможно, являются: факты стандартного и виртуального кубов, задачи и сценарный справочник, экспресс-представления кубов.

При копировании метамодели, содержащей внутренние модели:

Пример

Для выполнения примера предполагается наличие в репозитории модуля с идентификатором «Module_1».

Добавьте ссылку на системную сборку Metabase.

Sub UserProc;
Var
    MB: IMetabase;
    MObj: IMetabaseObject;
    CrInfo: IMetabaseObjectCreateInfo;
Begin
    MB := MetabaseClass.Active;
    CrInfo := MB.CreateCreateInfo;
    CrInfo.ClassID := MetabaseObjectClass.KE_CLASS_MODULE;
    CrInfo.Id := MB.GenerateId("New_Module");
    CrInfo.Name := "Новый модуль";
    CrInfo.Parent := MB.Root;
    MObj := MB.CreateObject(CrInfo).Edit;
    MObj.Assign(MB.ItemById("Module_1").Bind);
    MObj.Save;
End Sub UserProc;

Public Shared Sub Main(Params: StartParams);
Var
    MB: IMetabase;
    MObj: IMetabaseObject;
    CrInfo: IMetabaseObjectCreateInfo;
Begin
    MB := Params.Metabase;
    CrInfo := MB.CreateCreateInfo();
    CrInfo.ClassId := (MetabaseObjectClass.KE_CLASS_MODULE As integer);
    CrInfo.Id := MB.GenerateId("New_Module"1);
    CrInfo.Name := "Новый модуль";
    CrInfo.Parent := MB.Root;
    MObj := MB.CreateObject(CrInfo).Edit();
    MObj.Assign(MB.ItemById["Module_1"].Bind());
    MObj.Save();    
End Sub;

После выполнения примера в корневом каталоге репозитория будет создан новый модуль. Листинг модуля будет скопирован из модуля «Module_1».

См. также:

IMetabaseObject