Tablix: Wiederholen Sie die Kopfzeilen auf jeder Seite, die nicht funktioniert - Report Builder 3.0

162

Ich habe ein Tablix mit vielen Zeilen, die sich über mehrere Seiten erstrecken. Ich habe die Tablix-Eigenschaft "Kopfzeilen wiederholen" auf jeder Seite festgelegt, dies funktioniert jedoch nicht. Ich habe irgendwo gelesen, dass dies ein bekannter Fehler in Report Builder 3.0 ist. Ist das wahr? Wenn nicht, muss noch etwas getan werden?

Ayrton Senna
quelle

Antworten:

425

Dies hängt von der verwendeten Tablix-Struktur ab. In einer Tabelle haben Sie beispielsweise keine Spaltengruppen, sodass Reporting Services nicht erkennt, welche Textfelder die Spaltenüberschriften sind, und das Setzen der RepeatColumnHeaders-Eigenschaft auf True nicht funktioniert.

Stattdessen müssen Sie:

  1. Öffnen Sie den erweiterten Modus im Bereich Gruppierungen. (Klicken Sie auf den Pfeil rechts neben den Spaltengruppen und wählen Sie Erweiterter Modus.)
    • Bildschirmfoto
  2. Klicken Sie im Bereich Zeilengruppen (nicht Spaltengruppen) auf eine statische Gruppe, die das entsprechende Textfeld im Tablix hervorhebt. Klicken Sie sich durch jede statische Gruppe, bis die Spaltenüberschrift ganz links hervorgehoben wird. Dies ist im Allgemeinen die erste aufgelistete statische Gruppe.
  3. Setzen Sie im RepeatOnNewPageEigenschaftenfenster die Eigenschaft auf True.
    • Bildschirmfoto
  4. Stellen Sie sicher, dass die KeepWithGroupEigenschaft auf festgelegt ist After.

Die KeepWithGroupEigenschaft gibt an, an welche Gruppe sich das statische Element halten soll. Wenn diese Option Afteraktiviert ist, bleibt das statische Element bei der Gruppe danach oder darunter und fungiert als Gruppenkopfzeile. Wenn diese Option Beforeaktiviert ist, bleibt das statische Mitglied bei der Gruppe davor oder darüber und fungiert als Gruppenfußzeile. Wenn diese NoneOption aktiviert ist, entscheidet Reporting Services, wo das statische Element abgelegt werden soll.

Wenn Sie jetzt den Bericht anzeigen, wiederholen sich die Spaltenüberschriften auf jeder Seite des Tablix.

Dieses Video zeigt, wie Sie es genau wie die beschriebene Antwort einstellen.

Stacia
quelle
1
Stacia, wenn ich KeepWithGroup auswähle und versuche zu speichern, erhalte ich "Das Tablix 'DetailTablix' hat ein ungültiges TablixMember. Für alle TablixMember-Elemente in einer TablixColumnHierarchy muss die RepeatOnNewPage-Eigenschaft auf false gesetzt sein." Irgendwelche Ideen?
Moodboom
24
Ich habe mein Problem herausgefunden. Stacia, deine Antwort ist absolut richtig. Es ist nur eine schwierige Sache, genau das Richtige zu finden. Beachten Sie, dass Stacia beim Festlegen der RepeatOnNewPage-Eigenschaft den Bereich ROW-Gruppen ändern soll. Alles andere an dieser Lösung befasst sich mit Spalten, aber Sie müssen die Zeilengruppen (links) und nicht die Spaltengruppen (rechts) auswählen, obwohl Sie zunächst auf die Dropdown-Liste in Spalten klicken. Danke Stacia, genial.
Moodboom
5
+1 - Ich habe gerade ungefähr ein Dutzend exemplarische Vorgehensweisen im Internet gelesen, und dies ist die beste und direkteste Lösung für das Problem. Sie erklären auch, WARUM die Optionen wichtig sind, was fantastisch ist. Vielen Dank!
JNK
3
Dieses Video zeigt, wie man es genau wie die beschriebene Antwort einstellt: youtube.com/watch?v=WAO819-gkKw
Garnelenreis
8
KeepWithGroup = After war der Schlüssel für mich. Wie zu viele Microsoft-Dinge ist dies ein nicht offensichtlicher Trick, der erforderlich ist, damit eine Funktion funktioniert. Danke dir!
Leqid
17

Ich habe 2.0 und fand das oben genannte, um zu helfen; Die Auswahl einer statischen Aufladung hat die Zelle jedoch aus irgendeinem Grund nicht hervorgehoben. Ich habe diese Schritte befolgt:

  1. Wählen Sie unter Spaltengruppen die Option Erweitert aus, und die Statik wird angezeigt
  2. Klicken Sie auf die Statik, die in den Zeilengruppen angezeigt wird
  3. Setzen Sie KeepWithGroup auf After und RepeatOnNewPage auf true

Jetzt sollten sich Ihre Spaltenüberschriften auf jeder Seite wiederholen.

parkerw262
quelle
Das hat perfekt funktioniert ... viel einfacher als die obige Antwort, die bei mir nicht funktioniert hat.
R_Avery_17
Leider bekomme ich dadurch wieder leere Seiten.
Mike
10

Wie ich dieses Problem behoben habe, war, dass ich den Code dahinter manuell geändert habe (über das Menü Ansicht / Code). Der folgende Abschnitt sollte so viele Paare enthalten, <TablixMember> </TablixMember>wie die Anzahl der Zeilen im Tablix enthalten ist. In meinem Fall hatte ich mehr Paare <TablixMember> </TablixMember>als die Anzahl der Zeilen im Tablix. Auch wenn Sie in den "Erweiterten Modus" (rechts von "Spaltengruppen") wechseln, sollte die Anzahl der statischen Zeilen hinter den "Zeilengruppen" der Anzahl der Zeilen im Tablix entsprechen. Der Weg, um es gleich zu machen, ist das Ändern des Codes.

<TablixRowHierarchy>
      <TablixMembers>
        <TablixMember>
          <KeepWithGroup>After</KeepWithGroup>
          <RepeatOnNewPage>true</RepeatOnNewPage>
        </TablixMember>
        <TablixMember>
          <Group Name="Detail" />
        </TablixMember>
      </TablixMembers>
    </TablixRowHierarchy>
user3508487
quelle
Zu meiner Überraschung löste dies das Problem. Ich hatte ein Tablix mit 6 Zeilen (3 Kopfzeilen plus eine Gruppe mit Kopfzeile, Detail und Fußzeile). Ein Blick auf die Quelle zeigte 6 <TablixRow> s, aber 7 <TablixMember> s in der <TablixRowHierarchy>. Ich nahm meine beste Vermutung an, welches das Extra war (eines, das die Gruppe einwickelte) und entfernte es. Diese Version konnte nicht gerendert werden, aber die Fehlermeldung zeigte an, dass für eine Zeile die Einstellungen <Wiederholen ...> und <Behalten mit ...> geändert werden mussten, um mit den vorherigen übereinzustimmen. Ich habe diese in der 3. (statischen) Zeile in "true" und "After" geändert und voila! Ich wünschte ich hätte es wirklich verstanden;)!
GISmatters
Danke dafür. Ich verwende SSRS seit über 10 Jahren und bin gerade auf dieses Problem gestoßen - tatsächlich gab es einen zusätzlichen TablixMember-Wrapper in der Gruppe (ohne Zweifel aufgrund von Experimenten zum Hinzufügen und Entfernen von Gruppen). Das Bereinigen der Mitgliederliste löste den mysteriösen, sich nicht wiederholenden Header.
Carl Daniel
Vielen Dank, ich musste zwei überschüssige TablixMember-Zeilen löschen, die gruppiert waren und keine Daten hatten. Das Zeichen dafür war für mich in meinem Bericht, dass es zwei statische Zeilengruppen anstelle von einer gab. Nachdem ich die überschüssige XML-Verschachtelung entfernt hatte, begannen die sich wiederholenden Zeilen zu funktionieren.
Noppadet
1
Danke dir. Nur diese Lösung funktionierte für meinen Bericht, in dem ich mit einem ähnlichen Problem konfrontiert war.
Syed
Anscheinend fehlt die richtige Einstellung in Visual Studio. Die Tipps zu den erweiterten Einstellungen, die sich auf ReportBuilder beziehen, haben also nicht geholfen. Die manuelle Bearbeitung der Datei funktionierte wie ein Zauber. Vielen Dank!
MovGP0
9

Öffnen Sie Advanced Modeim Bereich Gruppierungen. (Klicken Sie auf den Pfeil rechts neben den Spaltengruppen und wählen Sie Erweiterter Modus.)

Klicken Sie im Bereich Zeilengruppen (nicht Spaltengruppen) auf eine statische Gruppe, die das entsprechende Textfeld im Tablix hervorhebt.

Klicken Sie sich durch jede statische Gruppe, bis die Spaltenüberschrift ganz links hervorgehoben wird. Dies ist im Allgemeinen die erste aufgelistete statische Gruppe.

Im Eigenschaftenraster:

  • eingestellt KeepWithGroupaufAfter
  • eingestellt RepeatOnNewPagezu TrueHeadern für die Wiederholung
  • auf eingestellt FixedData, Trueum die Überschriften sichtbar zu halten
Elmer
quelle
5

Eine andere Möglichkeit, dies zu erreichen, wenn Sie dieses Problem weiterhin haben, besteht darin, Folgendes zu tun:

  • Löschen Sie den gesamten Text der Tabellenüberschrift und lassen Sie ihn leer.
  • Fügen Sie im Abschnitt "Kopfzeile" der Berichte Textfelder innerhalb eines Rechtecks ​​hinzu. Jedes Textfeld repräsentiert eine Spaltenüberschrift für die Tabelle.
  • Da sich dieses Rechteck im Abschnitt "Berichtskopf" befindet, wird es auf allen Berichtsseiten angezeigt.

Danke, Sufian.

Sufian O.
quelle
2

Für mich hat es funktioniert, einen neuen Bericht von Grund auf neu zu erstellen.

Nachdem dies erledigt ist und der neue Bericht funktioniert, werde ich die 2 .rdl-Dateien in Visual Studio vergleichen. Diese sind im XML-Format und ich hoffe, dass ein schneller WindDiff oder etwas anderes das Problem aufdecken würde.

Ein erster Blick zeigt, dass zwischen beiden Dateien 700 Codezeilen oder ein bisschen mehr Unterschied bestehen, wobei die größere der beiden Dateien die fehlerhafte Datei ist. Ein flüchtiger Blick auf die TablixHeader-Tags ergab nichts Offensichtliches.

Aber in meinem Fall war es eine beschädigte .rdl-Datei. Dies wurde ursprünglich aus einem Arbeitsbericht kopiert, sodass beim Entfernen von nicht wiederverwendeten Daten dies möglicherweise beschädigt wurde. Bei anderen Berichten, bei denen derselbe Vorgang ausgeführt wurde, konnten die Header jedoch wiederholt werden, wenn die richtigen Einstellungen in den Eigenschaften vorgenommen wurden.

Hoffe das hilft. Wenn Sie einen komplexen Bericht haben, ist dies keine schnelle Lösung, aber es funktioniert.

Vielleicht würde ein Vergleich bekannter guter XML-Dateien mit fehlerhaften Dateien einen guten Forumsbeitrag ergeben. Ich werde das an meinem Ende versuchen.

user1585204
quelle