IIF 内部的 SSRS 分部聚合

SSRS-Division Aggregation Inside IIF

我已经写了一个简单的表达式来显示 0 当我除以 0 作为异常:

我使用 Visual Studio 2008 和 Visual Studio 2019

=IIF ( Sum(Fields!STUDENTCOUNT.Value) = 0, 0 , Sum(Fields!CONTINUINGSTUDENTCOUNT.Value) / Sum(Fields!STUDENTCOUNT.Value) )

你没有很好地解释问题,但我可以从表达中看出问题所在。对于 IIF 语句,一旦执行到单元格,就会对整个语句求值。这意味着无论您如何尝试避免此表达式中的被零除错误,它仍然会评估 false 条件并生成错误。我将从 this answer 那里借用一些自定义代码来为您提供解决方案。

Public Function Divide (ByVal Dividend As Double, ByVal Divisor As Double)
  If IsNothing(Divisor) Or Divisor = 0
    Return 0
  Else
    Return Dividend/Divisor
  End If
End Function

要将其添加到您的代码中,请在设计器 window 中的报表外部右键单击并转到 Report Properties。单击代码选项卡并将之前的代码输入到编辑器中。然后,要调用代码,您将使用以下表达式。

=Code.Divide(Sum(Fields!CONTINUINGSTUDENTCOUNT.Value), Sum(Fields!STUDENTCOUNT.Value))