ITsCalculationContext.VariableMatrix

Fore syntax

VariableMatrix(Stub: IVariableStub): IMatrixDataSource;

Fore.NET syntax

VariableMatrix(Stub: Prognoz.Platform.Interop.Cubes.IVariableStub): Prognoz.Platform.Interop.Matrix.IMatrixDataSource;

Parameters

Stub. Abstract data source.

Description

This property is read-only.

The VariableMatrix property enables the user to get access to a certain data source.

Comments

For validation rules the VariableMatrix property always returns Null.

Fore example

Custom method, used for series calculation mode, is given in the example. The modeling variable with the 13418 key is required to execute the example.

Add links to the Metabase, Ms, Transform, Matrix, Cubes system assemblies.

Public Function CopyData: Variant;
Var
    pContext: ITsCalculationContext;
    i: Integer;
    pSeries: ITimeSeries;
    mb: IMetabase;
    VarStub: IVariableStub;
    MatrixDS: IMatrixDataSource;
    Matr: IMatrix;
    MatrIter: IMatrixIterator;
Begin
    pContext := TsCalculation.Current;
    pSeries := pContext.CreateTimeSeries;
    If pContext.CalculationType = TsCalculationType.Series Then
        mb := MetabaseClass.Active;
        VarStub := mb.Item(13418).Bind As IVariableStub;
        MatrixDS := pContext.VariableMatrix(VarStub);
        Matr := MatrixDS.Execute(Null);
        MatrIter := Matr.CreateIterator;
        MatrIter.Move(IteratorDirection.First);
        For i := pSeries.StartIndex To pSeries.EndIndex Do
            pSeries.Item(i) := MatrIter.Value;
            MatrIter.Move(IteratorDirection.Next);
        End For;
        Return pSeries;
    End If;
End Function CopyData;

The method copies data from variable with the "13418" key.

Fore.NET example

Custom method, used for series calculation mode, is given in the example. The modeling variable with the 13418 key is required to execute the example.

Imports Prognoz.Platform.Interop.Metabase;
Imports Prognoz.Platform.Interop.Ms;
Imports Prognoz.Platform.Interop.Transform;
Imports Prognoz.Platform.Interop.Dimensions;
Imports Prognoz.Platform.Interop.Cubes;
Imports Prognoz.Platform.Interop.Matrix;
Imports Prognoz.Platform.Interop.ForeSystem;

Public Shared Function CopyData(Params: StartParams): object;
Var
    TsCalc: TsCalculation;
    pContext: ITsCalculationContext;
    i: Integer;
    pSeries: ITimeSeries;
    mb: IMetabase;
    VarStub: IVariableStub;
    MatrixDS: IMatrixDataSource;
    Matr: IMatrix;
    MatrIter: IMatrixIterator;
Begin
    TsCalc := New TsCalculation.Create();
    pContext := TsCalc.Current[Null];
    pSeries := pContext.CreateTimeSeries(-1 As DimCalendarLevel, NullAs ITimeSeries;
    If pContext.CalculationType[Null] = TsCalculationType.tctSeries Then
        mb := Params.Metabase;
        VarStub := mb.Item[13418].Bind() As IVariableStub;
        MatrixDS := pContext.VariableMatrix[VarStub];
        Matr := MatrixDS.Execute(Null);
        MatrIter := Matr.CreateIterator();
        MatrIter.Move(IteratorDirection.itdFirst);
        For i := pSeries.StartIndex To pSeries.EndIndex Do
            pSeries.Item[i] := MatrIter.Value;
            MatrIter.Move(IteratorDirection.itdNext);
        End For;
    End If;
    Return pSeries;
End Function;

The method copies data from variable with the 13418 key.

See also:

ITsCalculationContext