Affichage d’un tableau vide dans Reporting Services

Dans les newsgroups (US), de nombreuses personnes demandent comment gérer l’absence de données dans un tableau (ou un autre type de Data Region). Voici un petit condensé des solutions techniques…

Utilisation de NoRows

C’est la méthode la plus simple, si le DataSet lié à une DataRegion de type Table est vide, il est possible d’afficher un texte à la place du tableau grâce à la propriété NoRows. Le problème est que l’on ne peut pas modifier la mise en forme du texte et que rien d’autre ne s’affiche (pas d’entêtes de colonne). Aussi, si votre tableau mesure plusieurs centimètres de haut, l’espace reste réservé au rendu, laissant souvent un espace blanc et vide.

Utilisation d’une ligne cachée

L’idée ici est de garder les entêtes de colonne mais d’ajouter le texte explicatif d’absence de données. On ajoute une ligne de Header dans la Table. On écrit le texte dedans (avec une fusion de cellules au besoin). Puis on met une expression dans la propriété Visibility afin d’afficher la ligne uniquement s’il n’y a pas de ligne dans le DataSet:

=(CountRows()>0)

Attention, on doit retourner false si on veut cacher l’élément; il faut donc réfléchir à l’envers… Cette solution ne règle toujours pas le problème de l’espace vide avant l’élément suivant.

Utilisation d’une TextBox

On utilise le principe de la propriété Visibility pour cacher entièrement la Table si elle est vide Visibility.Hidden=(CountRows()=0). On place une TextBox contenant le message au-dessus de la Table et on lui applique une expression similaire dans sa propriété Visibility pour l’afficher à la bonne condition. La Table étant cachée, il n’y a pas d’espace utilisé et inversement.

 

PS : je n’ai pas réglé le cas où on souhaite afficher les entêtes sans l’espace vide. La propriété Visible n’est pas prise en compte sur une ligne de Table, il en est de même avec la propriété CanShrink. La solution que je vois est de recréer les entêtes dans un rectangle et d’utiliser la technique de la TextBox présentée ci-dessus.

 

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s