IMsProblemCalculation.Callback

Синтаксис

Callback: IMsProblemCalculationCallback;

Callback: Prognoz.Platform.Interop.Ms.IMsProblemCalculationCallback;

Описание

Свойство Callback определяет объект для обработки событий, происходящих во время расчёта задачи.

Комментарии

При расчёте задачи возможны следующие события:

Пример Fore

Для выполнения примера предполагается наличие контейнера моделирования с идентификатором «MODEL_SPACE», содержащего задачу моделирования с идентификатором «PROBLEM».

Добавьте ссылки на системные сборки «Metabase», «Ms». Также в примере используется класс MCallback, описание которого приведено в IMsProblemCalculationCallback.OnWarning.

Sub ProblemCalc;
Var
    mb: IMetabase;
    MsKey: Integer;
    Problem: IMsProblem;
    Calculation: IMsProblemCalculation;
    CallBack: MCallback;
    CalcSettings: IMsProblemCalculationSettings;
Begin
    mb := MetabaseClass.Active;
    // Получаем задачу моделирования
    MsKey := mb.GetObjectKeyById("MODEL_SPACE");
    Problem := mb.ItemByIdNamespace("PROBLEM", MsKey).Bind As IMsProblem;
    // Задаем параметры расчёта задачи
    CalcSettings := Problem.CreateCalculationSettings;
    CalcSettings.FactIncluded := True;
    CalcSettings.BreakOnError := True;
    Calculation := Problem.Calculate(CalcSettings);
    // Задаем обработчик событий
    CallBack := New MCallback.Create;
    Calculation.Callback := CallBack;
    // Выполняем расчёт
    Calculation.Run;
End Sub ProblemCalc;

После выполнения примера задача будет рассчитана. Если возникнет ошибка, то расчет будет остановлен. Обработчиком событий, возникающих при расчете задачи, является класс MCallback.

Пример Fore.NET

Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.

Imports Prognoz.Platform.Interop.Metabase;

Public Shared Sub Main(Params: StartParams);
Var
    mb: IMetabase;
    MsKey: uinteger;
    Problem: IMsProblem;
    Calculation: IMsProblemCalculation;
    CallBack: MCallback;
    CalcSettings: IMsProblemCalculationSettings;
Begin
    mb := Params.Metabase;
    // Получаем задачу моделирования
    MsKey := mb.GetObjectKeyById("MODEL_SPACE");
    Problem := mb.ItemByIdNamespace["PROBLEM", MsKey].Bind() As IMsProblem;
    // Задаем параметры расчёта задачи
    CalcSettings := Problem.CreateCalculationSettings();
    CalcSettings.FactIncluded := True;
    CalcSettings.BreakOnError := True;
    Calculation := Problem.Calculate(CalcSettings);
    // Задаем обработчик событий
    CallBack := New MCallback.Create();
    Calculation.Callback := CallBack;
    // Выполняем расчёт
    Calculation.Run();
End Sub;

См. также:

IMsProblemCalculation