IMsProblemCalculationCallback.OnWarning

Синтаксис Fore

OnWarning(Message: String);

Синтаксис Fore.NET

OnWarning(Message: string);

Описание

Метод OnWarning реализует событие для вывода предупреждения при расчете задачи моделирования.

Комментарии

Для корректного использования метод должен быть переопределен в пользовательском классе, который является обработчиком событий. Также данный обработчик должен быть задан в параметрах, используемых для расчета задачи моделирования.

Пример Fore

В примере приведено описание пользовательского класса, являющегося обработчиком событий.

Добавьте ссылки на системные сборки: 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.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;

См. также:

IMsProblemCalculationCallback