2009-01-28 6 views
43

J'ai donc plusieurs rapports qui consistent en un DataSet rendu dans un tablix. Il existe une propriété pour le contrôle Tablix nommée RepeatColumnHeaders, que j'ai définie sur True pour chaque rapport en question. L'explication de cette propriété indique “ Indique si les en-têtes de colonne sont répétés sur chaque page sur laquelle une partie de la région de données apparaît. ” Semble assez simple, mais sur certains rapports cela fonctionne et sur d'autres pas. Je n'arrive pas à trouver ce qui est différent dans les rapports qui pourraient affecter cela. Dans un rapport où les en-têtes se répètent, il y a un mojo de groupement assez mystérieux, mais dans un exemple où cela ne fonctionne pas, le Tablix n'a qu'un seul niveau - aucun groupement. Je m'attendrais à ce que le multi-imbriqué soit le problème, pas le plat.Reporting Services: Tablette RepeatColumnHeaders ne fonctionne pas sur certains rapports

Peut-être que c'est un problème tout à fait différent. J'ai jeté ensemble un tableau matriciel simple, rendu SELECT * FROM Foo, accepté toutes les valeurs par défaut, ce qui se traduit par RepeatColumnHeaders étant réglé sur Faux, et voilà les en-têtes de colonnes font répétition pour ce rapport ... Grrr.

Toute idée grandement appréciée.

+0

Y at-il des correctifs service packs/bugs qui résoudre ce problème? – Jeff

+4

Il y a un problème Microsoft Connect ouvert ici https://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=337720 – Sophia

Répondre

47

C'est un peu foiré de ce que j'ai réussi à déterrer. Dans votre volet de regroupement, sélectionnez le mode avancé, puis sélectionnez votre ligne statique la plus externe. Vous devriez alors voir la propriété "RepeatOnNewPage".

Mise à jour: trouver le mode avancé:
Le commentaire par des liens @HCL au other answer by @user359904, qui a l'information sur la façon de trouver et accéder au mode Avancé:

  1. Sélectionnez le tableau matriciel
  2. ci-dessous le rapport sont "Groupes de lignes" et "Groupes de colonnes", tout le chemin à droite de "Groupes de colonnes" est une petite flèche vers le bas.
  3. Cliquez sur la flèche, choisissez Mode avancé.
+1

Nice! Ça a marché. Vous êtes un atout pour Stackoverflow ... bien que nous soyons les deux seuls utilisateurs à avoir des questions sur SSRS ... haha. Merci encore. –

+0

Je ne me souviens pas de l'avoir vu mais dans RS2005, donc je pense que c'est un numéro de 2008. C'est probablement pourquoi pas beaucoup de gens l'ont encore rencontré. – Jeff

+3

+1 pour la solution. Pour toutes les personnes qui ont des problèmes pour trouver le mode avancé (comme moi), regardez http://stackoverflow.com/questions/488900/reporting-services-tablix-repeatcolumnheaders-doesnt-work-on-some-reports/2986024# 2986024, le dernier paragraphe montre où trouver – HCL

2

Dans vos rapports où l'en-tête ne se répète pas, avez-vous supprimé la ligne d'en-tête par défaut dans le tableau à tout moment? Une fois que je l'ai fait, peu importe le réglage que j'ai essayé, l'en-tête du tableau ne se répète pas. J'ai dû recréer le tablix pour que ça marche.

+0

Je suis sûr que c'est tout. Je l'ai testé sur l'exemple SELECT * FROM Foo ci-dessus et reproduit le comportement comme vous l'avez décrit. Merci beaucoup. –

+1

C'est drôle comment la propriété RepeatColumnHeaders ne fait * apparemment * rien ... mais soupire. –

+1

J'avais un senario où je devais recréer le tablix pour nettoyer le XML, puis j'ai dû insérer manuellement le commentaire true par "J'ai le chapeau". Grr ... :-) – Jeff

14

Nous sommes désolés de ne pas avoir marqué votre réponse comme réponse; J'espère que vous garderez les points de rep.

La courbe s'épaissit. Dans trois tests, j'ai trouvé une corrélation 1: 1 entre l'utilisation de l'assistant pour créer un rapport et obtenir le comportement d'en-tête désiré, ainsi qu'entre ne pas utiliser l'assistant et ne pas être en mesure d'obtenir le comportement souhaité. De là, je diff'd les fichiers RDL pour un travail et un exemple de non-travail et a trouvé cet élément:

 
<RepeatOnNewPage>true</RepeatOnNewPage> 

Dans le document à:

 
Report > Body > ReportItems > Tablix > TablixBody > TablixRowHierarchy 
    > TablixMembers > TablixMember 

J'ai ajouté la même chose à la non-travail rdl et les en-têtes ont commencé à se répéter.

Cependant, je ne peux pas trouver un paramètre, une propriété, etc. dans le concepteur qui le permute. Il ne semble pas correspondre du tout aux propriétés évidentes décrites précédemment. Est-ce juste un artefact du magicien? Heureusement, c'est un travail assez facile car je ne pouvais pas faire face à la recréation d'une douzaine de rapports en utilisant l'assistant.

+0

Cela a fonctionné pour moi deux, mais c'était très difficile. J'ai dû recréer mon tablix et ensuite déposer l'étiquette dans la TablixRowHierarchy comme indiqué. – Jeff

15

J'ai trouvé une solution qui fonctionne pour moi. La réponse de Vinny m'a conduit à ça.

Heureusement, je n'ai pas eu à recréer mon tablix. J'avais trois rangées qui composaient mon en-tête de tablix. J'ai ajouté trois lignes en dehors du groupe de niveau supérieur. Ces lignes ne sont liées à aucun groupe. J'ai modifié les lignes afin qu'elles reproduisent exactement les rangées d'en-tête que j'avais dans mon groupe de niveau supérieur. J'ai défini la propriété KeepWithGroup sur "After" et la propriété "RepeatOnNewPage" sur true pour chacune de ces lignes d'en-tête. J'ai testé le rapport. L'en-tête apparaissait en haut de chaque page mais en raison de la duplication des lignes d'en-tête à la fois dans le groupe de niveau supérieur et au-dessus du groupe de niveau supérieur, l'en-tête était répété deux fois en haut de chaque page. J'ai supprimé les lignes d'en-tête dans la section la plus haute et la duplication a disparu. Les en-têtes se répètent correctement à chaque coupure du groupe de niveau supérieur et en haut de chaque page. Il n'y a pas de lignes d'en-tête dans le groupe de niveau supérieur.

Pour définir KeepWithGroup et RepeatOnNewPage: Sélectionnez le tableau matriciel. Dans la zone de groupe sous le volet de conception, cliquez sur la flèche vers le bas à droite du texte qui lit "Groupes de colonnes" et assurez-vous que "Mode avancé" est cochée. Cliquez sur la première ligne statique et définissez la propriété KeepWithGroup sur "After" et "RepeatOnNewPage" sur true. Faites cela pour chacune des lignes qui composent votre en-tête.

+1

+1 Pour montrer comment définir l'option RepeatOnNewPage du concepteur – HCL

+1

Merci. L'option 'RepeatOnNewPage' en elle-même n'était pas suffisante pour le mien. J'ai aussi dû mettre 'KeepWithGroup' à After. – RememberME

10

Votre message est toujours utilisé;) Merci à tous. J'ai construit sur ce que vous avez fourni pour trouver une solution pour restaurer les lignes d'en-tête répétées. Je n'avais pas besoin d'utiliser le mode Avancé, juste un aperçu ... J'avais deux rangées de titre en dehors de tous les groupes de lignes sans groupes de colonnes. Voici ce que je l'ai fait pour obtenir les deux lignes de titre dans l'en-tête de tableau matriciel:

  1. Faites un clic droit sur une ligne de titre et « Ajouter un groupe (Groupe de colonne) », groupe parent
  2. Groupe par « 1 » (ce groupe sera ensuite supprimé de sorte qu'il n'a pas d'importance ce que vous mettez là-bas
  3. Cliquez sur OK et une ligne d'en-tête est ajouté.
  4. Fusionner toutes les colonnes de la nouvelle tête ligne
  5. dans le volet groupe de colonnes, faites un clic droit sur le groupe que vous venez de créer et "Supprimer le groupe", cochez la case "groupe seulement" important
  6. Maintenant que vous avez une ligne d'en-tête, vous pouvez insérer une ligne au-dessus ou au-dessous pour ajouter plus de lignes d'en-tête.
  7. Déplacez vos lignes de titre dans les nouvelles lignes d'en-tête et supprimez vos anciennes lignes de titre.
  8. Dernière ... assurez-vous de vérifier la propriété Tablix à « Répéter têtes de colonnes sur chaque page »

Il a bien fonctionné et facilement reproductible (j'avais beaucoup tablixes).

Cordialement, Alan

+1

@OFG: Votre [modification suggérée] (http://stackoverflow.com/edit-suggestions/1832) a été rejetée car il s'agit vraiment d'une autre question et n'améliore pas cette réponse. Utilisez le bouton [AskQuestion] (http://stackoverflow.com/questions/ask) pour poser une nouvelle question. N'hésitez pas à inclure un «lien» à cette réponse si cela aide les autres à comprendre votre nouvelle question. – yhw42

+0

A travaillé pour moi. Merci –

+0

Merci beaucoup. A travaillé pour moi. – Aqua267

0

Il est maintenant l'année 2014 et j'exécute la version 2012 et j'utilisé votre poste pour résoudre mon problème - celui qui a connu développeur SSRS dans notre boutique ne savait pas comment résoudre (I suis juste un débutant). Merci d'avoir contribué votre solution - cela semble être un problème intemporel.

Questions connexes