В данном разделе приведено описание процедуры вывода значений переменной в окно консоли.
В рассматриваемом нами примере моделирования, после расчета задачи результаты были выгружены в переменную «Сальдо торгового баланса, млрд.долл.США» по сценарию «Факт». Для их просмотра предназначен описанный ниже модуль.
Для выполнения модуля по просмотру результатов расчета необходимо добавить ссылки на сборки «Ms», «Metabase», «Cubes», «Dimensions», «Matrix».
Sub Main;
Var
MB: IMetabase;
KMDesc: IMetabaseObjectDescriptor;
Problem: IMsProblem;
VarList: IVariableStubList;
VarStub: IVariableStub;
VarObj: IMetabaseObject;
CubeInst: ICubeInstance;
Des: ICubeInstanceDestination;
DimSS: IDimSelectionSet;
DimS: IDimSelection;
Elem: IDimElementArray;
Mat: IMatrix;
Coord: IMatrixCoord;
i: Integer;
Begin
MB := MetabaseClass.Active;
KMDesc := MB.ItemById("MODEL_SPACE");
Problem := mb.ItemByIdNamespace("PROBLEM_BALANCE", KMDesc.Key).Bind As IMsProblem;
// Получаем выходную переменную
VarList := Problem.VariableStubs(MsVariableKind.Output);
VarStub := VarList.FindById("BALANCE");
// Получаем представление переменной в экспресс-анализе
VarObj := (VarStub As IMsVariable).Cube As IMetabaseObject;
CubeInst := VarObj.Open(Null) As ICubeInstance;
Des := CubeInst.Destinations.DefaultDestination;
DimSS := Des.CreateDimSelectionSet;
// Отмечаем динамику, для которой будут выводиться данные: Годы
DimS := DimSS.Item(0);
Elem := DimS.Dimension.Levels.Item(0).Elements;
For Each i In Elem Do
DimS.SelectElement(i, False);
End For;
// Отмечаем сценарный справочник «Факт»
DimSS.Item(1).SelectAll;
// Получаем матрицу данных переменной
Mat := Des.Execute(DimSS);
Coord := Mat.CreateCoord;
Coord.Item(1) := 0;
// Выводим матрицу с данными в окно консоли
Debug.WriteLine("Данные переменной '" + VarStub.Name + "':");
For Each i In Elem Do
Coord.Item(0) := i;
// Mat.Item(Coord) := Math.RandBetween(50, 100);
Debug.WriteLine(Mat.Item(Coord));
End For;
End Sub Main;
После выполнения примера данные расчета задачи, выгруженные в переменную «Сальдо торгового баланса, млрд.долл.США», будут выведены в окно консоли.
См. также: