ICompoundDimension.InitCustomContainer

Синтаксис

InitCustomContainer;

Описание

Метод InitCustomContainer обновляет/создает измерение фактов (ICustomDimension) на основе виртуального куба в соответствии с механизмом 17 релиза.

Комментарии

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

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

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

Пример

В рассматриваемом примере предполагается наличие в схеме виртуального куба, созданного в 17 релизе, идентификатор куба — «VIRTUAL_17».

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("VIRTUAL_17").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;

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

См. также:

ICompoundDimension