IMsDataBreakpoint.Condition

Синтаксис

Condition: IExpression;

Описание

Свойство Condition возвращает условие срабатывания точки останова.

Комментарии

Условие срабатывания точки останова задаются выражением, которое должно вернуть результат логического типа. Точка данных в выражении определяется ключевым словом «Value». Пример выражения: «Value > 0». Если установлено данное условие, то точка останова будет срабатывать в точках данных, значение которых больше нуля.

Пример

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

Добавьте ссылки на системные сборки: Cubes, Dimensions, Matrix, Metabase, Ms.

Sub Main;

Var

Mb: IMetabase;

ModelSpaceDescr: IMetabaseObjectDescriptor;

Problem: IMsProblem;

CalcSettings: IMsProblemCalculationSettings;

CallBack: MCallback;

Calculation: IMsProblemCalculation;

Breakpoints: IMsBreakpoints;

Breakpoint: IMsBreakpoint;

DataBreakpoint: IMsDataBreakpoint;

Stub: IVariableStub;

MatrixDs: IMatrixDataSource;

SelSetSource, SelSetDest: IDimSelectionSet;

i: Integer;

Begin

Mb := MetabaseClass.Active;

ModelSpaceDescr := Mb.ItemById("MODEL_SPACE");

Problem := Mb.ItemByIdNamespace("PROBLEM", ModelSpaceDescr.Key).Edit As IMsProblem;

CalcSettings := Problem.CreateCalculationSettings;

CallBack := New MCallback.Create;

CalcSettings.Callback := CallBack;

CalcSettings.FactIncluded := True;

Calculation := Problem.Calculate(CalcSettings);

Breakpoints := Calculation.Breakpoints;

Breakpoints.Clear;

Breakpoint := Breakpoints.Add(MsBreakpointKind.Data);

DataBreakpoint := Breakpoint As IMsDataBreakpoint;

DataBreakpoint.Name := "DataBreakpoint";

Stub := Mb.ItemByIdNamespace("VARABLE", ModelSpaceDescr.Key).Edit As IVariableStub;

DataBreakpoint.Variable := Stub;

MatrixDs := Calculation.VariableStub(Stub);

SelSetSource := MatrixDs.Execute(Null).Dimensions;

SelSetDest := SelSetSource.CreateCopy;

For i := 0 To SelSetDest.Count - 1 Do

SelSetDest.Item(i).SelectAll;

End For;

DataBreakpoint.Selection := SelSetDest;

DataBreakpoint.Condition.AsString := "Value = Null";

Calculation.Run;

End Sub Main;

После выполнения примера для задачи расчета будет установлена точка останова, срабатывающая, если значение в рассчитываемой точке для переменной «VARABLE» имеет значение Null.

См. также:

IMsDataBreakpoint