IMetabaseObjectCreateInfo.Link

Синтаксис

Link: IMetabaseLink;

Link: Prognoz.Platform.Interop.Metabase.IMetabaseLink;

Описание

Свойство Link определяет связь с репозиторием.

Комментарии

Данное свойство используется, если создается ярлык на объект из другого репозитория. Для связи с репозиторием используется объект - Связь с репозиторием. При создании ссылки на объект из другого репозитория, в качестве значения свойства IMetabaseObjectCreateInfo.ClassId должен задаваться класс объекта, на который создается ссылка. Описание объекта указывается в свойстве IMetabaseObjectCreateInfo.Shortcut, свойству IMetabaseObjectCreateInfo.IsShortcut должно быть установлено значение False.

Пример

Для выполнения примера предполагается наличие объекта «Связь с репозиторием» с идентификатором «Link_Test». В репозитории, с которым осуществляется связь, имеется регламентный отчет с идентификатором «Report_1».

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

Sub UserProc;
Var
    MB: IMetabase;
    CrInfo: IMetabaseObjectCreateInfo;
    Link: IMetabaseObject;
    LinkInst: IMetabaseLinkInstance;
    ObjDesc: IMetabaseObjectDescriptor;
Begin
    MB := MetabaseClass.Active;
    CrInfo := MB.CreateCreateInfo;
    CrInfo.Id := 
"Shortcut_Report_1";
    CrInfo.Name := 
"Ярлык для Report_1";
    CrInfo.Parent := MB.Root;
    CrInfo.Permanent := 
True;
    Link := MB.ItemById(
"Link_Test").Bind;
    LinkInst := Link.Open(
NullAs IMetabaseLinkInstance;
    ObjDesc := LinkInst.Metabase.ItemById(
"Report_1");
    CrInfo.Link := Link 
As IMetabaseLink;
    CrInfo.ClassId := ObjDesc.ClassId;
    CrInfo.Shortcut := ObjDesc;
    MB.CreateObject(CrInfo);
End Sub UserProc;

Public Sub Main(Params: StartParams);
Var
    MB: IMetabase;
    CrInfo: IMetabaseObjectCreateInfo;
    Link: IMetabaseObject;
    LinkInst: IMetabaseLinkInstance;
    ObjDesc: IMetabaseObjectDescriptor;
Begin
    MB := Params.Metabase;
    CrInfo := MB.CreateCreateInfo();
    CrInfo.ClassId := MetabaseObjectClass.KE_CLASS_PROCEDURALREPORT As Int32;
    CrInfo.Id := "Shortcut_Report_1";
    CrInfo.Name := "Ярлык для Report_1";
    CrInfo.Parent := MB.Root;
    CrInfo.Permanent := True;
    Link := MB.ItemById["Link_Test"].Bind();
    LinkInst := Link.Open(NullAs IMetabaseLinkInstance;
    ObjDesc := LinkInst.Metabase.ItemById["Report_1"];
    CrInfo.Link := Link As IMetabaseLink;
    CrInfo.ClassId := ObjDesc.ClassId;
    CrInfo.Shortcut := ObjDesc;
    MB.CreateObject(CrInfo);
End Sub;

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

См. также:

IMetabaseObjectCreateInfo | Работа с ярлыком