SSRS 2008: если заявление IsNan Ошибка неверное количество аргументов - PullRequest
0 голосов
/ 22 июня 2010

когда я запускаю отчет SSRS со следующим выражением ниже, я получаю сообщение об ошибке: неверное количество аргументов. Я получаю эту ошибку в) .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"))

        )

  )

Ответы [ 2 ]

1 голос
/ 22 июня 2010

Вероятно, конкретная ошибка связана с тем, что вместо Value.IsNaN следует использовать IsNaN (значение), но на всякий случай, если вы пытаетесь использовать Iif () для предотвращения ошибки деления на ноль, я дам вам бонус .

Делаем это ...

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

... всегда выдает ошибку, когда CouldBeZero = 0, потому что сначала вычисляется деление, а результат передается в функцию Iif ().

Вместо этого сделайте это ...

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

... чтобы убедиться, что разделение работает и отображается ноль.

0 голосов
/ 11 декабря 2012

Вместо того, чтобы иметь это большое комплексное значение до .IsNAN, просто используйте Single.IsNAN

...