Today I stumbled upon this:
{IIF(Sum(Items.Total+Items.Discount) != 0, Sum(Items.Discount) / Sum(Items.Total+Items.Discount), 0)}
...it throws a division-by-zero exception when Sum(Items.Total+Items.Discount) is 0.
Are both the true and false results of IIF always evaluated, independently of the condition?
(BTW: Using {Sum(Items.Total+Items.Discount) != 0 ? Sum(Items.Discount) / Sum(Items.Total+Items.Discount) : 0} now)
IIF - when are the true/false results evaluated
IIF - when are the true/false results evaluated
Hello.
Thank you.
IIF() is a function. When it is called all parameters evaluates. In your case you must use a ? : operand to prevent division by zero error.Tobias wrote:Today I stumbled upon this:
{IIF(Sum(Items.Total+Items.Discount) != 0, Sum(Items.Discount) / Sum(Items.Total+Items.Discount), 0)}
...it throws a division-by-zero exception when Sum(Items.Total+Items.Discount) is 0.
Are both the true and false results of IIF always evaluated, independently of the condition?
(BTW: Using {Sum(Items.Total+Items.Discount) != 0 ? Sum(Items.Discount) / Sum(Items.Total+Items.Discount) : 0} now)
Thank you.