SetCompoundFactorKeys(Value: Array);
SetCompoundFactorKeys(Value: System.Array);
Value. Массив составных ключей временных рядов.
Метод SetCompoundFactorKeys задает составные ключи для временных рядов, которые должны быть рассчитаны.
Ключи для временных рядов, которые должны быть рассчитаны задает метод IRubricatorFactorExecutor.SetFactorKeys.
Для выполнения примера предполагается наличие в репозитории базы данных временных рядов с идентификатором «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(Null) As 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.
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(Null) As 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;
См. также: