156 votes

Tableau matriciel: Répétez les lignes d'en-tête sur chaque page qui ne fonctionne pas - Générateur de rapports version 3.0

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?

406voto

Stacia Points 2548

Il dépend de la structure de tableau matriciel vous utilisez. Dans une table, par exemple, vous n'avez pas de groupes de colonnes, de sorte que les Rapports des Services de ne pas reconnaître les zones de texte sont les en-têtes de colonne et de réglage RepeatColumnHeaders True à la propriété ne fonctionne pas.

Au lieu de cela, vous devez:

  1. Ouvrir le Mode Avancé dans les Groupements volet. (Cliquez sur la flèche à droite de la Colonne des Groupes et sélectionnez Mode Avancé.)
  2. Dans la zone Groupes de lignes (pas de Groupes de Colonnes), cliquez sur un groupe Statique, qui met en évidence la zone de texte correspondante dans le tableau matriciel. Cliquez sur par le biais de chaque groupe Statique jusqu'à ce qu'il met en évidence la colonne la plus à gauche de l'en-tête. C'est en général le premier groupe Statique répertoriés.
  3. Dans la fenêtre Propriétés, définissez l' RepeatOnNewPage True à la propriété.
  4. Assurez-vous que l' KeepWithGroup propriété est définie à l' After.

L' KeepWithGroup propriété spécifie le groupe à qui le membre statique doit coller. Si la valeur est After alors que le membre statique des bâtons avec le groupe, ou au-dessous, en agissant comme un en-tête de groupe. Si la valeur est Before, alors que le membre statique bâtons avec le groupe avant, ou au-dessus d'elle, agissant comme un pied de page de groupe. Si la valeur est None, Reporting Services, décide de l'endroit où mettre le membre statique.

Maintenant, lorsque vous affichez le rapport, les en-têtes de colonnes à répéter sur chaque page du tableau matriciel.

Cette vidéo montre comment le configurer exactement comme la réponse décrit.

16voto

parkerw262 Points 52

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:

  1. Dans les groupes de colonnes, sélectionnez Avancé et la statique s'affichera.
  2. Cliquez sur la statique qui apparaît dans les groupes de lignes
  3. Définissez KeepWithGroup sur After et RepeatOnNewPage sur true

Les en-têtes de colonne doivent maintenant être répétés sur chaque page.

9voto

user3508487 Points 1

Comment j'ai résolu ce problème a été j'ai modifié manuellement le code derrière (dans le menu Affichage/code). La section ci-dessous devrait avoir autant de nombre de paires <TablixMember> </TablixMember> le nombre de lignes dans le tableau matriciel. Dans mon cas, j'ai eu plusieurs paires <TablixMember> </TablixMember>que le nombre de lignes dans le tableau matriciel. Aussi, si vous allez à la "mode Avancé" (à droite de la Colonne "Groupes") le nombre de lignes statiques derrière la Ligne "groupes" doit être égal au nombre de lignes dans le tableau matriciel. La façon de faire de l'égalité est en train de changer le code.

<TablixRowHierarchy>
      <TablixMembers>
        <TablixMember>
          <KeepWithGroup>After</KeepWithGroup>
          <RepeatOnNewPage>true</RepeatOnNewPage>
        </TablixMember>
        <TablixMember>
          <Group Name="Detail" />
        </TablixMember>
      </TablixMembers>
    </TablixRowHierarchy>

5voto

Sufian O Points 121

Si vous avez toujours ce problème, vous pouvez également procéder de la manière suivante:

  • Effacer tout le texte de l'en-tête de la table, laissez-le vide.
  • Dans la section "En-tête" des rapports, ajoutez des zones de texte dans un rectangle. Chaque zone de texte représente un en-tête de colonne pour le tableau.
  • Comme ce rectangle se trouve dans la section En-tête des rapports, il apparaîtra sur toutes les pages du rapport.

Merci, Sufian.

2voto

user1585204 Points 46

Ce qui a fonctionné pour moi a été de créer un rapport à partir de zéro.

Ce fait et le nouveau rapport de travail, je vais comparer les 2 .rdl fichiers dans Visual Studio. Ce sont au format XML et je suis en espérant une rapide WindDiff ou quelque chose serait de révéler ce que le problème a été.

Un premier aperçu de l'affiche il y a 700 lignes de code ou un peu plus de différence entre les deux fichiers, avec la plus grande des 2 étant le mauvais fichier. Un rapide coup d'oeil à la TablixHeader balises de ne pas révéler quoi que ce soit évident.

Mais dans mon cas c'était un corrompu .fichier rdl. Cela a d'abord été copié à partir d'un rapport de travail, donc, dans le processus de suppression de ce qui n'était pas ré-utilisé, ce qui pourrait avoir corrompu. Cependant, d'autres rapports où ce même processus a été fait, les en-têtes pourrait se répéter lorsque les paramètres appropriés ont été effectués dans des immeubles.

Espérons que cette aide. Si vous avez un rapport complexe, ce n'est pas la solution rapide, mais il fonctionne.

Peut-être en comparant connu bien des fichiers XML pour défectueux sur votre fin permettrait de faire un bon post sur le forum. Je vais essayer ça sur ma fin.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X