ICompoundDimension.InitCustomContainer

Синтаксис

InitCustomContainer;

Описание

Метод InitCustomContainer обновляет или создает измерение фактов на основе виртуального куба.

Комментарии

Данный метод обновляет или создает атрибуты измерения, заданного свойством ICompoundDimension.CustomContainer. Если в этом свойстве значение пустое, то в репозитории среди дочерних объектов владельца (виртуальный куб) данного измерения ищется объект класса KE_CLASS_CUSTOMDIMENSION с признаком IsInternal и идентификатором FACTS. Если такой объект найден, то он используется, иначе создается и используется новый объект — ICustomDimension, у которого структура (владелец, идентификатор, признак IsInternal) задается по правилам, указанным для поиска выше.

Созданное измерение фактов можно использовать в качестве альтернативной иерархии.

Данный метод актуален для корректной работы виртуального куба, если в схеме есть привязка к структуре измерения фактов виртуального куба.

Примеры привязки к структуре измерения фактов:

Примечание. При использовании данного метода обновляется или создается только структура измерения фактов. Формирование дерева элементов необходимо проводить отдельно.

Пример

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

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

Sub UserProc;
Var
    MB: IMetabase;
    MObj: IMetabaseObject;
    CubV: IVirtualCube;
    CompDim: ICompoundDimension;
    CustDim: ICustomDimension;
    i: Integer;
    Function TypeString(CustDim: ICustomDimension; i: Integer): String;
    Var
        c: String;
    Begin
        Select Case CustDim.Attributes.Item(i).DataType.ToString
        Case "1": c := "String";
        Case "2": c := "Integer";
        Case "3": c := "Float";
        Case "4": c := "DataTime";
        End Select;
        Return c;
    End Function TypeString;
Begin
    MB := MetabaseClass.Active;
    Mobj := MB.ItemById("V_CUBE").Edit;
    CubV := Mobj As IVirtualCube;
    CompDim := CubV.FactDimension As ICompoundDimension;
    CompDim.InitCustomContainer;
    CustDim := CompDim.CustomContainer;
    Debug.WriteLine("№    Идентификатор    Наименование   Tип атрибута");
    For i:=0 To CustDim.Attributes.Count-1 Do
        Debug.WriteLine(i.ToString + "    " + CustDim.Attributes.Item(i).Id + "     " + CustDim.Attributes.Item(i).Name + "       " + TypeString(CustDim,i))
    End For;
    MObj.Save;
End Sub UserProc;

В результате выполнения примера для виртуального куба будет создано измерение фактов. В консоль будет выведен идентификатор, наименование и тип для всех атрибутов измерения фактов.

См. также:

ICompoundDimension