2010-06-22 130 views
0

當我使用下面的表達式運行SSRS報告時,出現一個錯誤消息:錯誤的參數數量。我發現這個錯誤是.IsNaN,是我發言的一部分。我不明白我錯過了什麼。任何人都可以幫忙嗎?SSRS 2008:iif IsNan語句錯誤錯誤參數數量錯誤

= IIF(

 (

       (


        (Sum(Fields!UNITS.Value, "SFY2011_SW_T19")/Sum(Fields!DISTINCT_CLIENT_PAY.Value, "SFY2011_SW_T19")) 

        - (Sum(Fields!UNITS.Value, "SFY2010_SW_T19")/Sum(Fields!DISTINCT_CLIENT_PAY.Value, "SFY2010_SW_T19")) 

      ) 

     /(Sum(Fields!UNITS.Value, "SFY2010_SW_T19")/Sum(Fields!DISTINCT_CLIENT_PAY.Value, "SFY2010_SW_T19")) 

     ).IsNaN, 



     0.00, 



     (

       (

        (Sum(Fields!UNITS.Value, "SFY2011_SW_T19")/Sum(Fields!DISTINCT_CLIENT_PAY.Value, "SFY2011_SW_T19")) 

        - (Sum(Fields!UNITS.Value, "SFY2010_SW_T19")/Sum(Fields!DISTINCT_CLIENT_PAY.Value, "SFY2010_SW_T19")) 

      ) 

      /(Sum(Fields!UNITS.Value, "SFY2010_SW_T19")/Sum(Fields!DISTINCT_CLIENT_PAY.Value, "SFY2010_SW_T19")) 

     ) 

) 

回答

1

的特定錯誤,可能是因爲你應該做IsNaN(價值),而不是Value.IsNaN但以防萬一你想使用IIF(),以防止被分零差錯,我給你獎金,小費。

這樣做......

=Iif(CouldBeZero = 0, 0, SomeValue/CouldBeZero) 

...總會拋出時CouldBeZero = 0,因爲分裂首先計算,並將結果傳遞一個錯誤到Iif()函數。

而是做到這一點...

=Iif(CouldBeZero = 0, 0, SomeValue/Iif(CouldBeZero = 0, 1, CouldBeZero)) 

...以確保該司和零顯示。

0

而不是在.IsNAN之前有這麼大的複雜值,只需使用Single.IsNAN