ICubeExecuteDimSetup.Position

Синтаксис Fore

Position: Integer;

Синтаксис Fore.NET

Position: Integer;

Описание

Свойство Position определяет позицию измерения в группе.

Пример Fore

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

Sub UserProc;
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(
NullAs 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 UserProc;

После выполнения примера в окно консоли будут выведены индекс группы, позиция в ней и прочие параметры измерений, входящих в вариант отображения базы данных временных рядов, выбираемый по умолчанию. База данных временных рядов будет рассчитана с данными параметрами, результаты помещены в переменную «Mat».

Пример Fore.NET

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

Imports System.Diagnostics;
Imports Prognoz.Platform.Interop.Metabase;
Imports Prognoz.Platform.Interop.Cubes;
Imports Prognoz.Platform.Interop.Dimensions;
Imports Prognoz.Platform.Interop.Matrix;

Public Sub UserProc(Params: StartParams);
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 := Params.Metabase;
    Rubricator := Mb.ItemById["FC_DEP"].Bind();
    Cub := Rubricator.Open(NullAs 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.cubdimoptRequired = CubeDimensionExecuteOptions.cubdimoptRequired;
        Debug.WriteLine(b ? "Обязательное измерение" : "Необязательное измерение");
        b := DimSetup.Predefined = Null;
        Debug.WriteLine(b ? "Нет предопределенных опций" : "Есть предопределенные опции");
        Select Case DimSetup.Tag
            Case CubeDimensionTag.cubdimtagCalendar: Debug.WriteLine("Календарное измерение");
            Case CubeDimensionTag.cubdimtagFacts: Debug.WriteLine("Измерение фактов");
            Case CubeDimensionTag.cubdimtagNone: Debug.WriteLine("Тип измерения не определен");
            Case CubeDimensionTag.cubdimtagUnits: Debug.WriteLine("Единицы измерения");
        End Select;
        DimSetup.Selection.SelectAll();
        Debug.WriteLine("------");
    End For;
    Exe := Dest.CreateExecutor();
    Exe.PrepareExecute(Sels);
    Exe.PerformExecute(False);
    Mat := Exe.Matrix;
End Sub UserProc;

После выполнения примера в окно консоли будут выведены индекс группы, позиция в ней и прочие параметры измерений, входящих в вариант отображения базы данных временных рядов, выбираемый по умолчанию. База данных временных рядов будет рассчитана с данными параметрами, результаты помещены в переменную «Mat».

См. также:

ICubeExecuteDimSetup