ITsCalculationContext.VariableMatrix

Синтаксис Fore

VariableMatrix(Stub: IVariableStub): IMatrixDataSource;

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

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

Параметры

Stub. Абстрактный источник данных.

Описание

Свойство доступно только для чтения.

Свойство VariableMatrix позволяет получить доступ к указанному источнику данных.

Комментарии

Для правил валидации VariableMatrix всегда возвращает значение Null.

Пример Fore

В данном примере приведен пользовательский метод, предназначенный для векторного режима расчета. Для выполнения примера предполагается наличие переменной моделирования с ключом «13418».

Добавьте ссылки на системные сборки «Metabase», «Ms», «Transform», «Matrix», «Cubes».

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;

Метод выполняет копирование данных из переменной с ключом «13418».

Пример Fore.NET

В данном примере приведен пользовательский метод, предназначенный для векторного режима расчета. Для выполнения примера предполагается наличие переменной моделирования с ключом «13418».

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;

Метод выполняет копирование данных из переменной с ключом «13418».

См. также:

ITsCalculationContext