IStandardCubeDestination.CreateAndSetAttachmentsStorage

Синтаксис

CreateAndSetAttachmentsStorage(Database: IDatabase);

CreateAndSetAttachmentsStorage(Database: Prognoz.Platform.Interop.Db.IDatabase);

Параметры

Database. База данных, в которой будет создана таблица для табличного справочника НСИ.

Описание

Метод CreateAndSetAttachmentsStorage создаёт и устанавливает справочник для хранения вложений.

Комментарии

Метод создаёт табличный справочник НСИ с предопределённой структурой. Описание структуры справочника приведено в подразделе «Привязка фактов куба». Созданный справочник устанавливается в качестве места хранения вложений, его описание будет доступно в свойстве AttachmentsStorage.

Пример

Для выполнения примера предполагается наличие в репозитории стандартного куба с идентификатором «STD_CUBE». Куб настроен на работу с источником, в структуре которого имеется целочисленное поле «ATTACHMENT».

Добавьте ссылки на системные сборки: 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.CreateAndSetAttachmentsStorage(DataSet.Dataset.Database);
    
//Настройка привязки фактов
    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.CreateAndSetAttachmentsStorage(DataSet.Dataset.Database);
    
//Настройка привязки фактов
    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