2010-06-22 5 views
0

lorsque j'exécute le rapport SSRS avec l'expression suivante ci-dessous, j'obtiens une erreur qui indique: nombre incorrect d'arguments. Je reçois cette erreur au) .IsNaN, une partie de ma déclaration. Je ne vois pas ce qui me manque. quelqu'un peut-il aider s'il vous plait?SSRS 2008: iif IsNan instruction Erreur nombre incorrect d'arguments

= 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")) 

     ) 

) 

Répondre

1

L'erreur particulière est probablement parce que vous devez faire IsNaN (valeur) au lieu de Value.IsNaN mais juste au cas où vous essayez d'utiliser Iif() pour éviter une division par zéro erreur, je vais vous donner une astuce bonus.

Faire cela ...

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

... toujours jeter une erreur quand CouldBeZero = 0 car la division est évaluée en premier et le résultat passé à la fonction Iif().

faire ce lieu ...

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

... pour assurer le fonctionnement de la division et le zéro est affiché.

0

Au lieu d'avoir cette grande valeur complexe avant .IsNAN, il suffit d'utiliser Single.IsNAN