TreatNullsAsZeros: Boolean;
TreatNullsAsZeros: boolean;
Свойство TreatNullsAsZeros определяет параметр «Заменять пустые значения нулями» при расчете задачи моделирования.
Пустое значение - это Null.
Допустимые значения TreatNullsAsZeros:
True. Пустые значения в данных переменных будут заменены нулями при расчете задачи моделирования. Обратите внимание, что не будет работать обработка пропусков;
False. Значение по умолчанию. При расчете задачи моделирования к пустым значениям в данных переменных будут применяться только методы обработки пропусков.
После расчета задачи моделирования свойству устанавливается значение False.
Примечание.
Свойства IMsModel.TreatNullsAsZeros
и IMsProblemCalculation.TreatNullsAsZeros
работают совместно по условию ИЛИ.
Например, если для модели TreatNullsAsZeros
установлено в False, а для задачи,
рассчитывающую данную модель TreatNullsAsZeros
установлено в True, то при расчете
задачи в модели пустые значения будут заменены нулями.
Данная возможность позволяет управлять заменой пустых значений нулями как
отдельно для каждой модели, так и для всех моделей, рассчитываемых задачей.
Для выполнения примера в репозитории предполагается наличие контейнера моделирования с идентификатором «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.
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;
См. также: