2010-06-22 2 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) вместо 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