Comment conserver la structure du Tablix lorsqu'il n'y a pas de données à afficher

9

Nous avons un rapport SSRS qui montre le résultat d'un ensemble de données dans un tableau matriciel. Si la requête dans l'ensemble de données ne renvoie aucune donnée, l'en-tête du tableau matriciel s'affiche, mais pas les cellules du tableau matriciel sous l'en-tête. Je sais qu'il y a une propriété NoRowMessage, mais en fait ce n'est pas ce que nous voulons. Parce que lorsque je spécifie un message, SSRS affiche le message au lieu du tableau matriciel vide. Je dois afficher la structure du tableau matriciel telle qu'elle est, mais avec des cellules vides.

J'ai même défini la règle pour chaque valeur de cellule du tableau matriciel à l'aide de la IsNothingfonction, pour afficher vide (""), si la valeur est nulle, mais cela n'a pas aidé.

Avez-vous une idée? Merci d'avance pour votre aide.

Ciel
la source
Pourrait jeter un oeil à cette question: stackoverflow.com/q/3442296/847990

Réponses:

8

Vous pouvez ajouter une ligne à l'extérieur du groupe le plus à l'extérieur sous la ligne d'en-tête du tableau matriciel.
entrez la description de l'image ici

Définissez la visibilité des lignes sur Afficher ou masquer en fonction d'une expression. L'expression voudrait:

=iif(CountRows("DataSet1") > 0, true, false)

Lorsqu'il n'y a pas de données, le tableau affiche les en-têtes et la ligne vide.

entrez la description de l'image ici

Lorsqu'il y a des données, la ligne vide sera masquée.

mmarie
la source
Excellente solution! Juste FYI - CountRows("DataSet") > 0se résoudra à Trueou Falsepar lui-même, vous n'avez donc pas besoin d'envelopper la iifdéclaration, laissez-la simplement se résoudre. De plus, si vous avez filtré le Tablix de quelque manière que ce soit, cela comptera le nombre de lignes dans le jeu de données d'origine. Pour obtenir le nombre de lignes dans un tableau matriciel filtré, utilisez =COUNT("Fields.[pick any field].Value")ou supprimez le "datatable1 et utilisezCountRows()
KyleMit