2009-04-17 7 views
2

J'ai créé une table avec un filtre de groupe afin que certaines valeurs restent masquées. Cependant, la ligne qui affiche la somme() des valeurs ci-dessus compte toujours les valeurs filtrées.Exclure la ligne de table masquée du total

Habituellement, j'appliquerais le filtre à la requête, mais j'utilise également ce même ensemble de données dans d'autres tables du même rapport, ce qui n'est pas une option.

Ai-je manqué quelque chose ici, ou est-ce une faille dans MS Reporting Services?

Répondre

4

Cela semble être une "caractéristique" de SSRS, apparemment parce qu'il calcule des valeurs dans les en-têtes et les pieds de tableau avant de rendre la section de détail d'une table de données. Une solution consiste à ajouter une colonne Boolean dérivée à votre jeu de données (en supposant que votre source de données est SQL Server, en utilisant une instruction CASE ou similaire) indiquant si la ligne doit être exclue de la table où le filtre est requis .

Vous pouvez ensuite modifier votre filtre de table pour vérifier l'indicateur et utiliser une expression pour effectuer une somme conditionnelle afin d'agréger le total correct. Quelque chose comme

=SUM(Iif(Fields!ExcludeRow.Value = True,0,Fields!ValueToSum.Value)) 
+0

Brillant! Merci beaucoup. Je n'ai jamais pensé à mettre un iif() dans la somme(). Je n'avais même pas besoin de changer la requête. Mon filtre ne vérifiait que les titres vides, donc en mettant simplement le filtre dans le iif, le problème a été résolu. – Rob1n

0

Il est plus d'une question de réponse ...

Comment résoudre ce problème si vous savez si la ligne est caché ou non seulement au niveau du groupe Row?

si vous filtrez les totaux par ce groupe de lignes, c'est-à-dire que vous ne pouvez pas avoir de champ indiquant si la ligne est exclue ou non dans un ensemble de données. Ex: J'ai un rapport sur le vieillissement de l'AR qui a des totaux par mois, les patients. Je dois filtrer les totaux négatifs par patient (groupe de patients), mais j'ai aussi des groupes de colonnes par mois, mon ensemble de données ne peut donc pas être granulaire par patient et donc, le seul endroit où SSRS peut décider de cacher ou montrer la ligne est au niveau du groupe de lignes ...

0

J'ai eu le même problème mais j'avais trop de totaux de colonne pour entrer le Iif(). J'ai résolu le problème en supprimant le filtre du groupe et en plaçant le filtre dans la boîte de dialogue Propriétés du tableau matriciel (Sélectionnez Tablette, cliquez avec le bouton droit sur la zone grise en haut à gauche et choisissez Propriétés du tablixc).

Questions connexes