IIF - when are the true/false results evaluated

Stimulsoft Reports.NET discussion
Post Reply
Tobias
Posts: 104
Joined: Mon Nov 24, 2008 8:44 am

IIF - when are the true/false results evaluated

Post by Tobias »

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)
HighAley
Posts: 8430
Joined: Wed Jun 08, 2011 7:40 am
Location: Stimulsoft Office

IIF - when are the true/false results evaluated

Post by HighAley »

Hello.
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)
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.

Thank you.
Post Reply