2008-12-29 9 views
0

Je suis en train d'essayer de résumer une expression dans Visual Studio et de continuer à obtenir un #error mais je ne sais pas pourquoi. C'est la première fois que j'ai essayé de résumer une expression. Aucune suggestion!!!Sum IIF Expression

=IIf(Fields!STATUS.value = "Completed" AND Fields!DONOTINVOICE.value = True, Fields!ORDERCOST.Value, "") 
+1

Quelle langue est ce? Cela ressemble à Excel ... – recursive

Répondre

2

La valeur de IIf() sera évaluée en une chaîne ("") lorsque votre condition est fausse. Vous ne pouvez pas additionner une chaîne. Essayez d'utiliser 0 à la place.

+0

Juste pour être explicite: = IIf (Fields! STATUS.value = "Completed" ET Fields! DONOTINVOICE.value = Vrai, Fields! ORDERCOST.Value, 0) –

+0

Ceci devrait être marqué comme bonne réponse. –

0

Voulez-vous dire comme ça, juste essayé et tout somme dosent juste obtenir 0 :(

= Somme (Ilf (Fields! STATUS.value = "Terminé" et les champs! DONOTINVOICE.value = 1, Champs ! ORDERCOST.Value, 0))

+0

Maintenant, votre somme semble se composer d'une seule valeur. Qu'essayez-vous de faire? Quelle langue est-ce? – recursive

+0

Im écrire un rapport dans le studio visuel, de sorte que l'expression est dans le pied de la table. –

+0

Aucune fonction SUM n'est utilisée quelque part? –

0

Ok ne peut pas comprendre la somme sur une expression si ive juste utilisé une déclaration de cas dans un nouvel ensemble de données pour construire la fonction de somme.Exemple ci-dessous, cela est dans une requête interne et j'ai a fait une somme dans le bit principal.En cas de problème avec quelqu'un d'autre, voici comment je l'ai résolu:

CAS QUAND TBL_REPAIR_ORDER.STATUS = « Terminé » ET TBL_REPAIR_ORDER.DONOTINVOICE = 1 ALORS TBL_REPAIR_ORDER.ORDERCOST 0 ELSE FIN AS Terminé

0
=Sum(IIf(Fields!STATUS.value = "Completed" AND Fields!DONOTINVOICE.value = 1.0, Fields!ORDERCOST.Value, 0.0)) 

Vous devez utiliser » .0" à la fin de la valeur: ce assurez-vous que votre valeur de retour de si l'expression n'est pas chaîne

0

Pour Visual studio, envelopper le IIf dans un Cdbl:

=SUM(CDbl(IIf(Fields!STATUS.value = "Completed" AND Fields!DONOTINVOICE.value = True, Fields!ORDERCOST.Value, 0)))