Reporting services 如何防止NaN出现在我的报告中?

Reporting services 如何防止NaN出现在我的报告中?,reporting-services,Reporting Services,在没有记录的情况下,以下代码返回一个NaN。如何防止在报告中显示此信息?最好是0 =FormatNumber( (( (Code.NullSafeSplit(Fields!AvgLOSC1.Value, 0) * Code.NullSafeSplit(Fields!AvgLOSC1.Value, 1)) + (Code.NullSafeSplit(Fields!AvgLOSC2.Value, 0) * Code.NullSafeSplit(Fields!AvgLOSC2.Value, 1))

在没有记录的情况下,以下代码返回一个
NaN
。如何防止在报告中显示此信息?最好是0

=FormatNumber(
((
(Code.NullSafeSplit(Fields!AvgLOSC1.Value, 0) * Code.NullSafeSplit(Fields!AvgLOSC1.Value, 1)) + 
(Code.NullSafeSplit(Fields!AvgLOSC2.Value, 0) * Code.NullSafeSplit(Fields!AvgLOSC2.Value, 1)) + 
(Code.NullSafeSplit(Fields!AvgLOSC3.Value, 0) * Code.NullSafeSplit(Fields!AvgLOSC3.Value, 1)) + 
(Code.NullSafeSplit(Fields!AvgLOSC4.Value, 0) * Code.NullSafeSplit(Fields!AvgLOSC4.Value, 1)) + 
(Code.NullSafeSplit(Fields!AvgLOSC5.Value, 0) * Code.NullSafeSplit(Fields!AvgLOSC5.Value, 1))
) / (
CInt(Code.NullSafeSplit(Fields!AvgLOSC1.Value, 1)) + 
CInt(Code.NullSafeSplit(Fields!AvgLOSC2.Value, 1)) + 
CInt(Code.NullSafeSplit(Fields!AvgLOSC3.Value, 1)) + 
CInt(Code.NullSafeSplit(Fields!AvgLOSC4.Value, 1)) + 
CInt(Code.NullSafeSplit(Fields!AvgLOSC5.Value, 1))
))
, 0)

我认为下面的公式应该可以得到它。我还没有测试这个,所以我可能缺少一个括号。当所有条目都为空时,问题可能来自被零除。在这种情况下,它捕捉到该值并将除数设置为1

=FormatNumber(
   (
      (Code.NullSafeSplit(Fields!AvgLOSC1.Value, 0) * Code.NullSafeSplit(Fields!AvgLOSC1.Value, 1)) + 
      (Code.NullSafeSplit(Fields!AvgLOSC2.Value, 0) * Code.NullSafeSplit(Fields!AvgLOSC2.Value, 1)) + 
      (Code.NullSafeSplit(Fields!AvgLOSC3.Value, 0) * Code.NullSafeSplit(Fields!AvgLOSC3.Value, 1)) + 
      (Code.NullSafeSplit(Fields!AvgLOSC4.Value, 0) * Code.NullSafeSplit(Fields!AvgLOSC4.Value, 1)) + 
      (Code.NullSafeSplit(Fields!AvgLOSC5.Value, 0) * Code.NullSafeSplit(Fields!AvgLOSC5.Value, 1))
   )
/
   (
       IIF((
   CInt(Code.NullSafeSplit(Fields!AvgLOSC1.Value, 1)) + 
   CInt(Code.NullSafeSplit(Fields!AvgLOSC2.Value, 1)) + 
   CInt(Code.NullSafeSplit(Fields!AvgLOSC3.Value, 1)) + 
   CInt(Code.NullSafeSplit(Fields!AvgLOSC4.Value, 1)) + 
   CInt(Code.NullSafeSplit(Fields!AvgLOSC5.Value, 1))
      ) = 0,
      1,
      (
   CInt(Code.NullSafeSplit(Fields!AvgLOSC1.Value, 1)) + 
   CInt(Code.NullSafeSplit(Fields!AvgLOSC2.Value, 1)) + 
   CInt(Code.NullSafeSplit(Fields!AvgLOSC3.Value, 1)) + 
   CInt(Code.NullSafeSplit(Fields!AvgLOSC4.Value, 1)) + 
   CInt(Code.NullSafeSplit(Fields!AvgLOSC5.Value, 1))
      )
      )
, 0)

函数NullSafeSplit()在做什么?在我看来,您可以在那里处理它,如果不执行任何操作,则返回0,或者在SQL中使用ISNULL()。NullSafeSplit返回一个数字,如果为null,则返回0。