IRubricatorFactorExecutor.SetCompoundFactorKeys

Синтаксис Fore

SetCompoundFactorKeys(Value: Array);

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

SetCompoundFactorKeys(Value: System.Array);

Параметры

Value. Массив составных ключей временных рядов.

Описание

Метод SetCompoundFactorKeys задает составные ключи для временных рядов, которые должны быть рассчитаны.

Комментарии

Ключи для временных рядов, которые должны быть рассчитаны задает метод IRubricatorFactorExecutor.SetFactorKeys.

Пример Fore

Для выполнения примера предполагается наличие в репозитории базы данных временных рядов с идентификатором «FC». Добавьте ссылки на системные сборки: Metabase, Cubes, Matix, Rds.

Sub uProc;
Var
    MB: IMetabase;
    RubDesc: IMetabaseObjectDescriptor;
    RubrIn: IRubricatorInstance;
    Cub: ICubeInstance;
    Dest: ICubeInstanceDestination;
    FactorExec: IRubricatorFactorExecutor;
    FactsLookup: IRubricatorFactsLookup;
    Key: Array Of Variant;
    i: Integer;
    Exec: ICubeInstanceDestinationExecutor;
    Mat: IMatrix;
    Ite: IMatrixIterator;
Begin
    MB := MetabaseClass.Active;
    RubDesc := MB.ItemById("FC");
    RubrIn := RubDesc.Open(NullAs IRubricatorInstance;
    Cub := RubrIn As ICubeInstance;
    Dest := Cub.Destinations.DefaultDestination;
    Exec := Dest.CreateExecutor;
    FactorExec := Exec As IRubricatorFactorExecutor;
    FactsLookup := RubrIn.CreateFactsLookup;
    i := FactsLookup.LookupFactorsC.Length;
    Key := New Variant[i];
    Key := FactsLookup.LookupFactorsC;
    FactorExec.SetCompoundFactorKeys(Key);
    FactorExec.ValueKind := MetaAttributeKind.Value;
    FactorExec.ValueId := "VL";
    FactorExec.UseDwarf := True;
    Exec := FactorExec.AsCubeExecutor;
    Exec.PrepareExecute(Null);
    Exec.PerformExecute;
    Mat := Exec.Matrix;
    Ite := Mat.CreateIterator;
    Ite.Move(IteratorDirection.First);
    While Ite.Valid Do
        Debug.WriteLine(Ite.Value);
        Ite.Move(IteratorDirection.Next);
    End While;
End Sub uProc;

После выполнения примера в окно консоли будут выведены значения временных рядов, имеющих составной ключ.

Пример Fore.NET

Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.

Imports Prognoz.Platform.Interop.Cubes;
Imports Prognoz.Platform.Interop.Matrix;
Imports Prognoz.Platform.Interop.Rds;
Imports Prognoz.Platform.Interop.ForeSystem;

[STAThread]
Public Shared Sub Main(Params: StartParams);
Var
    MB: IMetabase;
    RubDesc: IMetabaseObjectDescriptor;
    RubrIn: IRubricatorInstance;
    Cub: ICubeInstance;
    Dest: ICubeInstanceDestination;
    FactorExec: IRubricatorFactorExecutor;
    FactsLookup: IRubricatorFactsLookup;
    Key: Array Of object;
    i: Integer;
    Exec: ICubeInstanceDestinationExecutor;
    Mat: IMatrix;
    Ite: IMatrixIterator;
Begin
    mb := Params.Metabase;
    RubDesc := MB.ItemById["FC"];
    RubrIn := RubDesc.Open(NullAs IRubricatorInstance;
    Cub := RubrIn As ICubeInstance;
    Dest := Cub.Destinations.DefaultDestination;
    Exec := Dest.CreateExecutor();
    FactorExec := Exec As IRubricatorFactorExecutor;
    FactsLookup := RubrIn.CreateFactsLookup();
    i := FactsLookup.LookupFactorsC().Length;
    Key := New object[i];
    Key := FactsLookup.LookupFactorsC() As Array Of object;
    FactorExec.SetCompoundFactorKeys(Key);
    FactorExec.ValueKind := MetaAttributeKind.meakValue;
    FactorExec.ValueId := "VL";
    FactorExec.UseDwarf := True;
    Exec := FactorExec.AsCubeExecutor();
    Exec.PrepareExecute(Null);
    Exec.PerformExecute(False);
    Mat := Exec.Matrix;
    Ite := Mat.CreateIterator();
    Ite.Move(IteratorDirection.itdFirst);
    While Ite.Valid Do
        System.Diagnostics.Debug.WriteLine(Ite.Value);
        Ite.Move(IteratorDirection.itdNext);
    End While;
End Sub;

См. также:

IRubricatorFactorExecutor