VariableMatrix(Stub: IVariableStub): IMatrixDataSource;
VariableMatrix(Stub: Prognoz.Platform.Interop.Cubes.IVariableStub): Prognoz.Platform.Interop.Matrix.IMatrixDataSource;
Stub. Абстрактный источник данных.
Свойство доступно только для чтения.
Свойство VariableMatrix позволяет получить доступ к указанному источнику данных.
Для правил валидации VariableMatrix всегда возвращает значение Null.
В данном примере приведен пользовательский метод, предназначенный для векторного режима расчета. Для выполнения примера предполагается наличие переменной моделирования с ключом «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».
В данном примере приведен пользовательский метод, предназначенный для векторного режима расчета. Для выполнения примера предполагается наличие переменной моделирования с ключом «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, Null) As 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».
См. также: