web-dev-qa-db-fra.com

Comment utiliser plusieurs conditions (With AND) dans des expressions IIF dans ssrs

Je souhaite simplement masquer des lignes dans le rapport SSRS indiquant que la quantité est nulle ... ... Il existe plusieurs colonnes de quantité telles que stock d'ouverture, volume brut expédié, transfert sortant, quantité vendue, ajustement du stock et stock de clôture, etc. cette tâche en utilisant l'expression suivante.

    =IIF(Fields!OpeningStock.Value=0 AND Fields!GrossDispatched.Value=0 AND 
Fields!TransferOutToMW.Value=0 AND Fields!TransferOutToDW.Value=0 AND 
Fields!TransferOutToOW.Value=0 AND Fields!NetDispatched.Value=0 AND Fields!QtySold.Value=0 
AND Fields!StockAdjustment.Value=0 AND Fields!ClosingStock.Value=0,True,False)

Mais en utilisant cette expression dans la visibilité des lignes, le rapport masque toutes les lignes sauf la ligne Totaux. Même si le rapport doit afficher les lignes contenant les quantités des colonnes susmentionnées, les valeurs totales sont correctes.

Remarque: J'ai défini cette expression de visibilité sur Ligne détaillée.

Sans utiliser l'expression, le résultat est le suivant.

Pour les 2 premières lignes, toutes les quantités sont 0 (ZERO), je souhaite masquer ces 2 lignes.

enter image description here

Comment puis-je résoudre ce problème ou quelle expression dois-je utiliser pour obtenir les résultats requis?

Merci d'avance pour votre aide.

6
almond eyes

Pourriez-vous essayer ceci?

=IIF((Fields!OpeningStock.Value=0) AND (Fields!GrossDispatched.Value=0) AND 
(Fields!TransferOutToMW.Value=0) AND (Fields!TransferOutToDW.Value=0) AND 
(Fields!TransferOutToOW.Value=0) AND (Fields!NetDispatched.Value=0) AND (Fields!QtySold.Value=0) 
AND (Fields!StockAdjustment.Value=0) AND (Fields!ClosingStock.Value=0),True,False)

Remarque: Si vous définissez Caché sur Faux, la ligne sera visible.

11
PeterRing

Vous n'avez pas du tout besoin d'un IIF () ici. Les comparaisons retournent vrai ou faux de toute façon.

De plus, étant donné que cette visibilité de ligne concerne une ligne de groupe, veillez à utiliser la même fonction d'agrégat sur les champs que celle que vous utilisez dans les champs de la ligne. Ainsi, si la ligne de votre groupe affiche des sommes, vous placerez ceci dans la propriété Hidden.

=Sum(Fields!OpeningStock.Value) = 0 And
Sum(Fields!GrossDispatched.Value) = 0 And 
Sum(Fields!TransferOutToMW.Value) = 0 And
Sum(Fields!TransferOutToDW.Value) = 0 And
Sum(Fields!TransferOutToOW.Value) = 0 And
Sum(Fields!NetDispatched.Value) = 0 And
Sum(Fields!QtySold.Value) = 0 And
Sum(Fields!StockAdjustment.Value) = 0 And
Sum(Fields!ClosingStock.Value) = 0

Mais avec la version ci-dessus, si un enregistrement a la valeur 1 et l'autre 0 et tous les autres sont nuls, la somme est égale à zéro et la ligne peut être masquée. Si ce n'est pas ce que vous voulez, vous pouvez écrire une expression plus complexe:

=Sum(
    IIF(
        Fields!OpeningStock.Value=0 AND
        Fields!GrossDispatched.Value=0 AND
        Fields!TransferOutToMW.Value=0 AND
        Fields!TransferOutToDW.Value=0 AND 
        Fields!TransferOutToOW.Value=0 AND
        Fields!NetDispatched.Value=0 AND
        Fields!QtySold.Value=0 AND
        Fields!StockAdjustment.Value=0 AND
        Fields!ClosingStock.Value=0,
        0,
        1
    )
) = 0

Il s'agit essentiellement d'une manière élégante de compter le nombre de lignes dans lesquelles aucun champ n'est différent de zéro. Si chaque champ a la valeur zéro pour chaque ligne du groupe, l'expression renvoie true et la ligne est masquée.

3
JC Ford

Voici un exemple qui devrait vous donner une idée.

=IIF(First(Fields!Gender.Value,"vw_BrgyClearanceNew")="Female" and 
(First(Fields!CivilStatus.Value,"vw_BrgyClearanceNew")="Married"),false,true)

Je pense que vous devez identifier le nom de la source de données ou le nom de la table d'où proviennent vos données.

0
roger bulawan