Link: 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(Null) As 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(Null) As 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».
См. также: