Tag: CubeDimensionTag;
Свойство Tag возвращает тип измерения.
Для выполнения примера предполагается наличие в репозитории базы данных временных рядов «FC_DEP».
Sub Main;
Var
Mb: IMetabase;
Rubricator: IMetabaseObject;
Cub: ICubeInstance;
Dest: ICubeInstanceDestination;
Sels: IDimSelectionSet;
CubeExSet: ICubeExecuteSetup;
i: Integer;
DimSetup: ICubeExecuteDimSetup;
Exe: ICubeInstanceDestinationExecutor;
Mat: IMatrix;
b: Boolean;
Begin
Mb := MetabaseClass.Active;
Rubricator := Mb.ItemById("FC_DEP").Bind;
Cub := Rubricator.Open(Null) As ICubeInstance;
Dest := Cub.Destinations.DefaultDestination;
Sels := Dest.CreateDimSelectionSet;
CubeExSet := Sels As ICubeExecuteSetup;
For i := 0 To CubeExSet.Count - 1 Do
DimSetup := CubeExSet.Item(i);
Debug.WriteLine("Идентификатор: " + DimSetup.Id);
Debug.WriteLine("Индекс группы: " + DimSetup.GroupIndex.ToString);
Debug.WriteLine("Позиция в группе: " + DimSetup.Position.ToString);
b := DimSetup.Options.Required = CubeDimensionExecuteOptions.Required;
Debug.WriteLine(b ? "Обязательное измерение" : "Необязательное измерение");
b := DimSetup.Predefined = Null;
Debug.WriteLine(b ? "Нет предопределенных опций" : "Есть предопределенные опции");
Select Case DimSetup.Tag
Case CubeDimensionTag.Calendar: Debug.WriteLine("Календарное измерение");
Case CubeDimensionTag.Facts: Debug.WriteLine("Измерение фактов");
Case CubeDimensionTag.None: Debug.WriteLine("Тип измерения не определен");
Case CubeDimensionTag.Units: Debug.WriteLine("Единицы измерения");
End Select;
DimSetup.Selection.SelectAll;
Debug.WriteLine("------");
End For;
Exe := Dest.CreateExecutor;
Exe.PrepareExecute(Sels);
Exe.PerformExecute;
Mat := Exe.Matrix;
End Sub Main;
После выполнения примера в окно консоли будут выведены тип и прочие параметры измерений, входящих в вариант отображения базы данных временных рядов, выбираемый по умолчанию. База данных временных рядов будет рассчитана с данными параметрами, результаты помещены в переменную «Mat».
См. также: