CSharp- Report Viewer, que faire lorsque la propriété RepeatColumnHeaders dans un tableau matriciel ne fonctionne pas

Lorsque vous créez des rapports de tableau et que vous souhaitez répéter les en-têtes de colonne sur chaque page du rapport, vous pouvez parfois rencontrer un problème. Et par «problème», je veux dire que, fondamentalement, cela ne fonctionne tout simplement pas. Donc, après avoir joué avec et avec un peu de détails sur la façon dont cela fonctionnait toujours dans le passé, vous commencerez probablement une recherche de la réponse. Et c’est probablement pourquoi vous êtes assis là maintenant, en m’écoutant patiemment.

L’un des mots clés du dernier paragraphe est «tableau». Le problème ne semble se poser que si la région de données que vous utilisez dans votre tableau matriciel est un tableau. Si vous utilisez une matrice, les en-têtes de groupe supplémentaires qui sont ajoutés contournent généralement ce problème. Mais parfois (souvent) avec une table, les groupes de lignes n’ont pas d’en-têtes et c’est leur absence qui cause tous les problèmes.

La solution facile à ce problème est la suivante:

Assurez-vous que vous pouvez voir la fenêtre des groupes de lignes et des groupes de colonnes.

Sur le côté droit de la zone de liste des groupes de colonnes, il y a une petite flèche vers le bas.

Cliquez dessus pour afficher la case à cocher Mode avancé. Cochez la case comme indiqué dans la capture d’écran ci-dessous:

visualstudio-reportviewe-repeatcolumnheaders
Visual Studio – Tableau : Groupe de colonne – mode avancé

 

Vous verrez maintenant une ou plusieurs entrées supplémentaires dans la liste des groupes de lignes qui sont affichées sous forme (statique).

Cliquez sur le premier (Pour simplifier les choses, mon exemple n’en a qu’un, mais il y en aura souvent plus).

Maintenant, consultez la fenêtre Propriétés et vous verrez que ce que vous avez réellement sélectionné est un membre Tablix. Ce membre Tablix possède un ensemble de propriétés et vous allez modifier les paramètres de trois d’entre elles – ou pour être plus précis, vous en changerez certainement l’une et devrez peut-être changer les deux autres.

    1. Définissez la propriété RepeatOnNewPage sur True.
    2. Vérifiez la propriété KeepWithGroup et remplacez-la par After si ce n’est pas son paramètre actuel.
    3. Vérifiez la propriété FixedData et remplacez-la par True si ce n’est pas son paramètre actuel.

Vous n’avez parfois pas besoin de définir les trois, mais cela ne fait pas de mal et avouons-le, vous avez dépensé suffisamment d’expériences avec des idées qui n’ont pas fonctionné jusqu’à présent, alors allez-y avec le flux et définissez les trois .

Réexécutez le projet et consultez les pages pour voir que ces en-têtes de colonne manquants sont là où ils devraient être.

Très intéressant, lorsque vous utilisez cette technique, vous n’avez pas réellement à définir la propriété RepeatColumnHeaders du Tablix sur True. Vous n’êtes pas obligé, mais devriez-vous? Dans le cadre d’une bonne pratique de codage, vous devriez bien sûr le faire. Qui sait, tôt ou tard, un esprit brillant chez Microsoft pourrait proposer un correctif de service pack qui résout ce petit problème. Donc, vous ne voulez pas avoir développé de mauvaises habitudes au moment où ce jour arrive.

Au cas où, cela ne fonctionne pas, un autre moyen est d’utiliser l’en-tête de page et d’en créer un qui se répète ainsi sur toutes les pages. Comme l’exemple ci-dessous.

visualstudio-reportviewer-entetedepage
Visual Studio : Report Viewer – Entête de Page

 

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *