OnWarning(Message: String);
OnWarning(Message: string);
Метод OnWarning реализует событие для вывода предупреждения при расчете задачи моделирования.
Для корректного использования метод должен быть переопределен в пользовательском классе, который является обработчиком событий. Также данный обработчик должен быть задан в параметрах, используемых для расчета задачи моделирования.
В примере приведено описание пользовательского класса, являющегося обработчиком событий.
Добавьте ссылки на системные сборки: Metabase, Ms.
Public Class MCallback: Object, IMsProblemCalculationCallback
Public Sub OnError(Message: String);
Begin
Debug.WriteLine("Ошибка: " + Message);
End Sub OnError;
Public Sub OnFinish;
Begin
Debug.WriteLine("Расчет задачи завершен");
End Sub OnFinish;
Public Sub OnMessage(Message: String);
Begin
Debug.WriteLine("Сообщение: " + Message);
End Sub OnMessage;
Public Sub OnModelCalculation(Model: IMsModel);
Begin
Debug.WriteLine("Расчет модели: " + (Model As IMetabaseObject).Id);
End Sub OnModelCalculation;
Public Sub OnStep;
Begin
Debug.WriteLine("Выполнен шаг расчёта");
End Sub OnStep;
Public Sub OnBreak(Breakpoint: IMsBreakpoint);
Begin
Debug.WriteLine(Breakpoint.Name);
End Sub OnBreak;
Public Sub OnWarning(Message: string);
Begin
Debug.WriteLine("Предупреждение: " + Message);
End Sub OnWarning;
Public Sub OnStageStart(Stage: MsProblemCalculationStage; Data: Variant);
Begin
Debug.Write("Начало стадии ");
Select Case Stage
Case MsProblemCalculationStage.Init: Debug.WriteLine("'Инициализация'");
Case MsProblemCalculationStage.DetermIdent: Debug.WriteLine("'Идентификация детерминированных уравнений'");
Case MsProblemCalculationStage.Vector: Debug.WriteLine("'Идентификация векторных уравнений'");
Case MsProblemCalculationStage.Ident: Debug.WriteLine("'Идентификация стохастических методов'");
Case MsProblemCalculationStage.Calc: Debug.WriteLine("'Расчет моделей'");
Case MsProblemCalculationStage.Save: Debug.WriteLine("'Сохранение данных'");
Case MsProblemCalculationStage.Finish: Debug.WriteLine("'Окончание расчета'");
Case MsProblemCalculationStage.Load: Debug.WriteLine("'Загрузка данных'");
End Select;
End Sub OnStageStart;
Public Sub OnStageFinish(Stage: MsProblemCalculationStage; Duration: Integer; Data: Variant);
Begin
Debug.WriteLine("Стадия завершена. Потрачено времени в миллисекундах: " + Duration.ToString);
Debug.WriteLine("");
End Sub OnStageFinish;
End Class MCallback;
Использование данного класса для обработки событий приведено в примере Fore для IMsProblemCalculationSettings.BreakOnError.
Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.
Imports Prognoz.Platform.Interop.Ms;
Public Class MCallback: Object, IMsProblemCalculationCallback
Public Sub OnError(Message: String);
Begin
System.Diagnostics.Debug.WriteLine("Ошибка: " + Message);
End Sub OnError;
Public Sub OnFinish();
Begin
System.Diagnostics.Debug.WriteLine("Расчет задачи завершен");
End Sub OnFinish;
Public Sub OnMessage(Message: String);
Begin
System.Diagnostics.Debug.WriteLine("Сообщение: " + Message);
End Sub OnMessage;
Public Sub OnModelCalculation(Model: IMsModel);
Begin
System.Diagnostics.Debug.WriteLine("Расчет модели: " + (Model As IMetabaseObject).Id);
End Sub OnModelCalculation;
Public Sub OnStep();
Begin
System.Diagnostics.Debug.WriteLine("Выполнен шаг расчёта");
End Sub OnStep;
Public Sub OnBreak(Breakpoint: IMsBreakpoint);
Begin
System.Diagnostics.Debug.WriteLine(Breakpoint.Name);
End Sub OnBreak;
Public Sub OnWarning(Message: string);
Begin
System.Diagnostics.Debug.WriteLine("Предупреждение: " + Message);
End Sub OnWarning;
Public Sub OnStageStart(Stage: MsProblemCalculationStage; Data: object);
Begin
System.Diagnostics.Debug.Write("Начало стадии ");
Select Case Stage
Case MsProblemCalculationStage.mpcsInit: System.Diagnostics.Debug.WriteLine("'Инициализация'");
Case MsProblemCalculationStage.mpcsDetermIdent: System.Diagnostics.Debug.WriteLine("'Идентификация детерминированных уравнений'");
Case MsProblemCalculationStage.mpcsVector: System.Diagnostics.Debug.WriteLine("'Идентификация векторных уравнений'");
Case MsProblemCalculationStage.mpcsIdent: System.Diagnostics.Debug.WriteLine("'Идентификация стохастических методов'");
Case MsProblemCalculationStage.mpcsCalc: System.Diagnostics.Debug.WriteLine("'Расчет моделей'");
Case MsProblemCalculationStage.mpcsSave: System.Diagnostics.Debug.WriteLine("'Сохранение данных'");
Case MsProblemCalculationStage.mpcsFinish: System.Diagnostics.Debug.WriteLine("'Окончание расчета'");
Case MsProblemCalculationStage.mpcsLoad: System.Diagnostics.Debug.WriteLine("'Загрузка данных'");
End Select;
End Sub OnStageStart;
Public Sub OnStageFinish(Stage: MsProblemCalculationStage; Duration: Integer; Data: object);
Begin
System.Diagnostics.Debug.WriteLine("Стадия завершена. Потрачено времени в миллисекундах: " + Duration.ToString());
System.Diagnostics.Debug.WriteLine("");
End Sub OnStageFinish;
End Class MCallback;
См. также: