web-dev-qa-db-fra.com

Comment tracer une ligne après chaque groupe dans SQL Server Reporting Services?

Ci-dessous le rapport que j'ai créé. Je voudrais tracer une ligne après chaque groupe, comme illustré par une ligne rouge dans l'image.
Essayé de s'immiscer dans Propriétés de la zone de texte> Expression de style de bordure. Mais cela ne resterait pas une fois que je l'ai fermé et rouvert.
Si je règle la bordure pour tout le groupe, la ligne sera répétée pour chaque ligne du groupe, ce que je ne veux pas. 

De l'aide?

enter image description here

18
Null Head
  1. Cliquez sur l'onglet View dans le Générateur de rapports Microsoft SQL Server.
  2. Assurez-vous que la case Properties est cochée pour que la fenêtre Propriétés apparaisse.
  3. Pour la ProductionCountry, sélectionnez la ligne entière du groupe. Les propriétés doivent montrer pour la ligne.
  4. Dans les propriétés, sélectionnez Border-> BorderStyle-> Top. La valeur sera probablement vide.
  5. Dans le champ Top, entrez l'expression ci-dessous pour la bordure supérieure.

Valeur du champ supérieur:

=IIF(Fields!ProductionCountry.Value = Previous(Fields!ProductionCountry.Value) OR Fields!ProductionCountry.Value = First(Fields!ProductionCountry.Value, "mydataset"),"None","Solid")

Modifiez la valeur mydataset ci-dessus pour qu'elle corresponde au nom du jeu de données de votre rapport.

Remarque:

Si la ligne en cours appartient au même groupe que la ligne précédente OU La ligne du groupe en cours est la première de l'ensemble de données. Définissez border sur none, set bordure à solide.

31
niktrs

Sélectionnez la ligne de détail entière et ajoutez cette expression à la propriété BorderStyle-Top:

=IIF((Previous(Fields!ProductionCountry.Value) <> Fields!ProductionCountry.Value) 
    OR (Previous(Fields!IndustryName.Value) <> Fields!IndustryName.Value) 
    OR (Previous(Fields!ProductGroup.Value) <> Fields!ProductGroup.Value), 
    "Solid",
    "None")
4
Chris Latta

Pour améliorer la réponse de @ niktrs, je suggérerais:

=Iif(Fields!ProductionCountry.Value = Previous(Fields!ProductionCountry.Value) OR IsNothing(Previous(Fields!ProductionCountry.Value)),"None","Solid")


Cela présente l'avantage de ne pas ajouter de ligne sur la ligne du groupe initial, même lorsque le premier groupe affiché n'est pas le premier groupe de l'ensemble de données, par exemple, lorsque le tri ou le filtrage est en place.

1
Gary Pendlebury

Ce que j’ai trouvé très facile à faire est de définir la bordure supérieure du groupe. De cette façon, chaque nouveau groupe ajoute une bordure entre la dernière ligne du groupe précédent et la première du nouveau groupe. Il ajoute également une bordure après les en-têtes.

Cette solution ne trace pas de bordure à la fin de la dernière ligne. Si vous avez également besoin de cette bordure, vous pouvez définir la bordure inférieure du tableau matriciel contenant les groupes.

1
Edgar Hernandez
=Iif(Fields!ProductionCountry.Value ="","None","Solid")

changez également la bordure par défaut none left solid right right solid bas none haut de l'expression ci-dessus .

j'ai essayé comme ça pour le bord supérieur et ça fonctionnait bien ...

0
Lijo