J'ai un tableau matriciel avec beaucoup de lignes qui s'étendent sur plusieurs pages. J'ai défini la propriété Tablix. Répéter les lignes d'en-tête sur chaque page, mais cela ne fonctionne pas. J'ai lu quelque part qu'il s'agissait d'un bogue connu dans le Générateur de rapports version 3.0. Est-ce vrai? Si non, y a-t-il autre chose à faire?
Cela dépend de la structure de tablix que vous utilisez. Par exemple, dans une table, vous ne disposez pas de groupes de colonnes. Par conséquent, Reporting Services ne reconnaît pas les zones de texte qui constituent les en-têtes de colonne. Définir la propriété RepeatColumnHeaders sur True ne fonctionne pas.
Au lieu de cela, vous devez:
RepeatOnNewPage
sur True. KeepWithGroup
est définie sur After
.La propriété KeepWithGroup
spécifie le groupe auquel le membre statique doit adhérer. Si défini sur After
, le membre statique reste collé au groupe après, ou au-dessous, agissant comme un en-tête de groupe. Si défini sur Before
, le membre statique reste collé au groupe avant ou au-dessus, agissant comme pied de groupe. Si défini sur None
, Reporting Services décide où placer le membre statique.
Maintenant, lorsque vous affichez le rapport, les en-têtes de colonne sont répétés sur chaque page du tableau.
This la vidéo montre comment définir exactement la réponse décrite.
J'ai 2.0 et trouvé ce qui précède pour aider; Cependant, la sélection d'une statique n'a pas mis la cellule en surbrillance pour une raison quelconque. J'ai suivi ces étapes:
Les en-têtes de colonne doivent maintenant être répétés sur chaque page.
Comment j'ai résolu ce problème si j'ai manuellement changé le code derrière (à partir du menu Voir/code). La section ci-dessous devrait avoir autant de paires de <TablixMember> </TablixMember>
que le nombre de lignes dans le tableau matriciel. Dans mon cas, j'avais plus de paires <TablixMember> </TablixMember>
que le nombre de lignes dans le tableau matriciel. De même, si vous accédez au "Mode avancé" (à droite de "Groupes de colonnes"), le nombre de lignes statiques derrière les "Groupes de lignes" doit être égal au nombre de lignes du tableau matriciel. La façon de le rendre égal est de changer le code.
<TablixRowHierarchy>
<TablixMembers>
<TablixMember>
<KeepWithGroup>After</KeepWithGroup>
<RepeatOnNewPage>true</RepeatOnNewPage>
</TablixMember>
<TablixMember>
<Group Name="Detail" />
</TablixMember>
</TablixMembers>
</TablixRowHierarchy>
Ouvrez Advanced Mode
dans le volet Groupes. (Cliquez sur la flèche à droite des groupes de colonnes et sélectionnez Mode avancé.)
Dans la zone Groupes de lignes (pas de groupes de colonnes), cliquez sur un groupe statique, qui met en surbrillance la zone de texte correspondante dans le tableau matriciel.
Cliquez sur chaque groupe statique jusqu'à ce qu'il apparaisse l'en-tête de colonne le plus à gauche. C’est généralement le premier groupe statique répertorié.
Dans la grille des propriétés:
KeepWithGroup
à After
RepeatOnNewPage
sur True
pour les en-têtes répétésFixedData
à True
pour que les en-têtes restent visiblesSi vous avez toujours ce problème, vous pouvez également procéder de la manière suivante:
Merci, Sufian.
Ce qui a fonctionné pour moi a été de créer un nouveau rapport à partir de zéro.
Ceci fait et le nouveau rapport fonctionne, je vais comparer les 2 fichiers .rdl dans Visual Studio. Ceux-ci sont au format XML et j'espère un WindDiff rapide ou quelque chose qui révélerait le problème.
Un premier regard montre qu'il y a 700 lignes de code ou un peu plus de différence entre les deux fichiers, le plus gros des deux étant le fichier défectueux. Un coup d'œil rapide sur les balises TablixHeader n'a révélé aucune évidence.
Mais dans mon cas, il s’agissait d’un fichier .rdl corrompu. Celui-ci avait été initialement copié à partir d'un rapport de travail. Ainsi, le processus de suppression des éléments non réutilisés aurait pu le corrompre. Toutefois, dans les autres rapports où ce même processus a été effectué, les en-têtes peuvent être répétés lorsque les paramètres corrects ont été définis dans Propriétés.
J'espère que cela t'aides. Si vous avez un rapport complexe, ce n'est pas la solution miracle, mais cela fonctionne.
Peut-être que comparer de bons fichiers XML connus à des fichiers défectueux de votre côté ferait un bon post de forum. Je vais essayer ça de mon côté.