GetCalculatedPointsCount(MetaModelKey: Integer): Integer;
GetCalculatedPointsCount(MetaModelKey: integer): integer;
MetaModelKey. Ключ метамодели, формулы из которой привели к изменению ячеек данных.
Метод GetCalculatedPointsCount возвращает количество ячеек в приёмнике данных, изменённых в результате выполнения формул из указанной метамодели.
Свойство предназначено для удобства проверки результатов расчёта задачи моделирования.
Для выполнения примера в репозитории необходимо наличие контейнера моделирования с идентификатором CONTAINER. В контейнере моделирования должны содержаться задача моделирования с идентификатором CONTAINER_TASK и метамодель с идентификатором CONTAINER_MODEL.
Добавьте ссылки на системные сборки: Metabase, Ms.
Sub UserProc;
Var
Mb: IMetabase;
MbDes1, MbDes2: IMetabaseObjectDescriptor;
Problem: IMsProblem;
Calc: IMsProblemCalculation;
CalcSet: IMsProblemCalculationSettings;
PointsCount: Integer;
MetaModel: IMsMetaModel;
Key: Integer;
Begin
// Получим репозиторий
Mb := MetabaseClass.Active;
// Получим задачу моделирования
MbDes1 := Mb.ItemByIdNamespace("CONTAINER_TASK", Mb.GetObjectKeyById("CONTAINER"));
Problem := MbDes1.Edit As IMsProblem;
// Настроим параметры расчёта задачи
CalcSet := Problem.CreateCalculationSettings;
// Создадим объект для расчёта задачи
Calc := Problem.Calculate(CalcSet);
// Запустим расчёт задачи
Calc.Run;
// Получим метамодель
MbDes2 := MB.ItemByIdNamespace("CONTAINER_MODEL", Mb.GetObjectKeyById("CONTAINER"));
MetaModel := MbDes2.Edit As IMsMetaModel;
// Получим ключ метамодели
Key := MetaModel.Key;
// Получим информацию о количестве ячеек
данных, изменённых при расчёте метамодели
PointsCount := Calc.GetCalculatedPointsCount(Key);
// Выведем в консоль информацию о количестве изменённых ячеек
данных
Debug.WriteLine("Количество изменённых ячеек данных: " + PointsCount.ToString);
End Sub UserProc;
Imports Prognoz.Platform.Interop.Metabase;
Imports Prognoz.Platform.Interop.Ms;
…
Public Shared Sub Main(Params: StartParams);
Var
Mb: IMetabase;
MbDes1, MbDes2: IMetabaseObjectDescriptor;
Problem: IMsProblem;
Calc: IMsProblemCalculation;
CalcSet: IMsProblemCalculationSettings;
PointsCount: integer;
MetaModel: IMsMetaModel;
Key: uinteger;
Begin
// Получим репозиторий
Mb := Params.Metabase;
// Получим задачу моделирования
MbDes1 := Mb.ItemByIdNamespace["CONTAINER_TASK", Mb.GetObjectKeyById("CONTAINER")];
Problem := MbDes1.Edit() As IMsProblem;
// Настроим параметры расчёта задачи
CalcSet := Problem.CreateCalculationSettings();
// Создадим объект для расчёта задачи
Calc := Problem.Calculate(CalcSet);
// Запустим расчёт задачи
Calc.Run();
// Получим метамодель
MbDes2 := MB.ItemByIdNamespace["CONTAINER_MODEL", Mb.GetObjectKeyById("CONTAINER")];
MetaModel := MbDes2.Edit() As IMsMetaModel;
// Получим ключ метамодели
Key := MetaModel.Key;
// Получим информацию о количестве ячеек
данных, изменённых при расчёте метамодели
PointsCount := Calc.GetCalculatedPointsCount(Key);
// Выведем в консоль информацию о количестве изменённых ячеек
данных
System.Diagnostics.Debug.WriteLine("Количество изменённых ячеек данных: " + PointsCount.ToString());
End Sub;
После выполнения примера будет выполнен расчёт задачи моделирования. В консоль будет выведена информация о количестве ячеек данных, изменённых в результате выполнения формул из метамодели CONTAINER_MODEL.
См. также: