IMsProblemCalculation.TreatNullsAsZeros

Синтаксис Fore

TreatNullsAsZeros: Boolean;

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

TreatNullsAsZeros: boolean;

Описание

Свойство TreatNullsAsZeros определяет параметр «Заменять пустые значения нулями» при расчете задачи моделирования.

Комментарии

Пустое значение - это Null.

Допустимые значения TreatNullsAsZeros:

После расчета задачи моделирования свойству устанавливается значение False.

Примечание. Свойства IMsModel.TreatNullsAsZeros и IMsProblemCalculation.TreatNullsAsZeros работают совместно по условию ИЛИ. Например, если для модели TreatNullsAsZeros установлено в False, а для задачи, рассчитывающую данную модель TreatNullsAsZeros установлено в True, то при расчете задачи в модели пустые значения будут заменены нулями.
Данная возможность позволяет управлять заменой пустых значений нулями как отдельно для каждой модели, так и для всех моделей, рассчитываемых задачей.

Пример Fore

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

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

Sub UserProc;
Var
    MB: IMetabase;
    MObj: IMetabaseObject;
    Problem: IMsProblem;
    CalcSett: IMsProblemCalculationSettings;
    Calculation: IMsProblemCalculation;
Begin
    MB := MetabaseClass.Active;
    MObj := MB.ItemByIdNamespace("PROBLEM", MB.ItemById("MS").Key).Edit;
    Problem := MObj As IMsProblem;
    CalcSett := Problem.CreateCalculationSettings;
    Calculation := Problem.Calculate(CalcSett);
    Calculation.TreatNullsAsZeros := True;
    Calculation.SaveHistory := True;
    Calculation.Run;
    MObj.Save;
End Sub UserProc;

История расчета задачи, произведенного в процессе выполнения примера с заменой пустых значений нулями, сохранится в контейнере моделирования. При расчете некорректной задачи история расчета задачи сохранена не будет.

Пример Fore.NET

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

Imports Prognoz.Platform.Interop.Ms;

Sub UserProc(Params: StartParams);
Var
    MB: IMetabase;
    MObj: IMetabaseObject;
    Problem: IMsProblem;
    CalcSett: IMsProblemCalculationSettings;
    Calculation: IMsProblemCalculation;
Begin
    MB := Params.Metabase;
    MObj := MB.ItemByIdNamespace["PROBLEM", MB.ItemById["MS"].Key].Edit();
    Problem := MObj As IMsProblem;
    CalcSett := Problem.CreateCalculationSettings();
    Calculation := Problem.Calculate(CalcSett);
    Calculation.TreatNullsAsZeros := True;
    Calculation.SaveHistory := True;
    Calculation.Run();
    MObj.Save();
End Sub UserProc;

См. также:

IMsProblemCalculation