UBF报表IIF使用表达式是IIf(bool_expression,truePart,falsePart)
bool_expression是一个bool表达式,truepart是这个布尔表达式为真时的值,falsepart为布尔表达式为假时的值。
IIf(Sum(Fields!FirstYearAmount.Value)=0,0,(Sum(Fields!SecondYearAmount.Value)-Sum(Fields!FirstYearAmount.Value))/Sum(Fields!FirstYearAmount.Value))
上面这个表达式想表达的意思是:增长比率=(第二年收货金额-第一年收货金额)/第一年收货金额,如果第一年收货金额为0,则增长比率=0;
但是报表展示时只要有Sum(Fields!FirstYearAmount.Value)=0的情况就会显示错误号,问题产生的原因是:虽然我们想将分母为0的情况排除,但是系统还是会去计算(Sum(Fields!SecondYearAmount.Value)-Sum(Fields!FirstYearAmount.Value))/Sum(Fields!FirstYearAmount.Value这个表达式,遇到0就直接报错了。所以我们必须也要为这个表达式排除掉分母为0的情况。即:,(Sum(Fields!SecondYearAmount.Value)-Sum(Fields!FirstYearAmount.Value))/IIf(Sum(Fields!FirstYearAmount.Value)=0,1,Sum(Fields!FirstYearAmount.Value)),最后的表达式如下:
IIf(Sum(Fields!FirstYearAmount.Value)=0,0,(Sum(Fields!SecondYearAmount.Value)-Sum(Fields!FirstYearAmount.Value))/IIf(Sum(Fields!FirstYearAmount.Value)=0,1,Sum(Fields!FirstYearAmount.Value)))