IStandardCubeDestination.AttachmentsStorage

Синтаксис

AttachmentsStorage: IMetabaseObjectDescriptor;

AttachmentsStorage: Prognoz.Platform.Interop.Cubes.IMetabaseObjectDescriptor;

Описание

Свойство AttachmentsStorage определяет место хранения вложений.

Комментарии

В качестве значения свойства указывается табличный справочник НСИ с предопределённой структурой. Описание структуры справочника приведено в подразделе «Привязка фактов куба». Также справочник может быть создан и назначен в качестве места хранения вложений с помощью метода CreateAndSetAttachmentsStorage.

Пример

Для выполнения примера предполагается наличие в репозитории стандартного куба с идентификатором «STD_CUBE». Куб настроен на работу с источником, в структуре которого имеется целочисленное поле «ATTACHMENT». Также в репозитории должен присутствовать табличный справочник НСИ с идентификатором «D_ATTACHMENTS», структура которого позволяет хранить вложения куба.

Добавьте ссылки на системные сборки: Cubes, Db, Dimensions, Metabase.

Sub UserProc;
Var
    Mb: IMetabase;
    Cube: IStandardCube;
    Dest: IStandardCubeDestination;
    DataSet: IStandardCubeDataset;
    FactDimInst: IDimInstance;
    KeyAttribute: IDimAttributeInstance;
    Binding: IStandardCubeFactBinding;
Begin
    Mb := MetabaseClass.Active;
    Cube := Mb.ItemById(
"STD_CUBE").Edit As IStandardCube;
    Dest := Cube.Destinations.Item(
0);
    DataSet := Dest.Datasets.Item(
0);
    
//Справочник для хранения вложений
    Dest.AttachmentsStorage := Mb.ItemById("D_ATTACHMENTS");
    
//Настройка привязки фактов
    FactDimInst := Dest.FactDimension.OpenDimension;
    KeyAttribute := FactDimInst.Attributes.FindById(
"KEY");
    Binding := Dest.FactBindings(DataSet).BindingWithRole(KeyAttribute.Value(
0), CubeFactBindingRole.Attachment);
    Binding.Formula.AsString := (DataSet.Dataset 
As IMetabaseObject).Id + ".ATTACHMENT";
    
//Сохранение куба
    (Cube As IMetabaseObject).Save;
End Sub UserProc;

Imports Prognoz.Platform.Interop.Cubes;
Imports Prognoz.Platform.Interop.Db;
Imports Prognoz.Platform.Interop.Dimensions;
Imports Prognoz.Platform.Interop.Metabase;

Public Shared Sub Main(Params: StartParams);
Var
    Mb: IMetabase;
    Cube: IStandardCube;
    Dest: IStandardCubeDestination;
    DataSet: IStandardCubeDataset;
    FactDimInst: IDimInstance;
    KeyAttribute: IDimAttributeInstance;
    Binding: IStandardCubeFactBinding;
Begin
    Mb := Params.Metabase;
    Cube := Mb.ItemById[
"STD_CUBE"].Edit() As IStandardCube;
    Dest := Cube.Destinations.Item[
0];
    DataSet := Dest.Datasets.Item[
0];
    
//Справочник для хранения вложений
    Dest.AttachmentsStorage := Mb.ItemById["D_ATTACHMENTS"];
    
//Настройка привязки фактов
    FactDimInst := Dest.FactDimension.OpenDimension;
    KeyAttribute := FactDimInst.Attributes.FindById(
"KEY");
    Binding := Dest.FactBindings[DataSet].BindingWithRole[KeyAttribute.Value[
0], CubeFactBindingRole.cfbrAttachment];
    Binding.Formula.AsString := (DataSet.Dataset 
As IMetabaseObject).Id + ".ATTACHMENT";
    
//Сохранение куба
    (Cube As IMetabaseObject).Save();
End Sub;

При выполнении примера для куба в качестве места хранения вложений будет установлен существующий табличный справочник НСИ. Для первого факта будет настроена привязка с полем источника, по которому будут храниться ключи элементов в справочнике вложений.

См. также:

IStandardCubeDestination