diff --git a/uppsrc/TCore/CalcNode.cpp b/uppsrc/TCore/CalcNode.cpp index 989ef1b19..45ab11e02 100644 --- a/uppsrc/TCore/CalcNode.cpp +++ b/uppsrc/TCore/CalcNode.cpp @@ -625,10 +625,10 @@ Time CalcContext::EvaluateTime(String expr) return !!node ? node->CalcTime(*this) : Time(Null); } -bool CalcContext::EvaluateBool(String expr) +bool CalcContext::EvaluateBool(String expr, bool null_value) { CalcNodePtr node = CalcParser().ScanVoid(expr); - return !!node && node->CalcBool(*this); + return !!node ? node->CalcBool(*this) : null_value; } String CalcContext::OptimizeConstant(String expr) diff --git a/uppsrc/TCore/CalcNode.h b/uppsrc/TCore/CalcNode.h index 34b344e86..f7e53b23b 100644 --- a/uppsrc/TCore/CalcNode.h +++ b/uppsrc/TCore/CalcNode.h @@ -350,7 +350,7 @@ public: int EvaluateInt(String expr); Date EvaluateDate(String expr); Time EvaluateTime(String expr); - bool EvaluateBool(String expr); + bool EvaluateBool(String expr, bool null_value = false); String OptimizeConstant(String expr); CalcNodePtr OptimizeConstant(CalcNodePtr src);