Tablix: powtarzanie wierszy nagłówka na każdej stronie nie działa - program Report Builder 3.0


164

Mam element tablix z wieloma wierszami obejmującymi wiele stron. Ustawiłem właściwość Tablix Powtórz wiersze nagłówka na każdej stronie, ale to nie działa. Gdzieś przeczytałem, że jest to znany błąd w programie Report Builder 3.0. Czy to prawda? Jeśli nie, czy jest coś jeszcze do zrobienia?

Odpowiedzi:


427

To zależy od używanej struktury elementu tablix. Na przykład w tabeli nie ma grup kolumn, więc Reporting Services nie rozpoznaje, które pola tekstowe są nagłówkami kolumn, a ustawienie właściwości RepeatColumnHeaders na True nie działa.

Zamiast tego musisz:

  1. Otwórz tryb zaawansowany w okienku Grupowania. (Kliknij strzałkę po prawej stronie grup kolumn i wybierz opcję Tryb zaawansowany).
    • Zrzut ekranu
  2. W obszarze Grupy wierszy (nie Grupy kolumn) kliknij grupę statyczną, która podświetli odpowiednie pole tekstowe w elemencie tablix. Klikaj na każdą grupę statyczną, aż podświetli skrajny lewy nagłówek kolumny. Na ogół jest to pierwsza wymieniona grupa statyczna.
  3. W oknie Właściwości ustaw RepeatOnNewPagewłaściwość na True.
    • Zrzut ekranu
  4. Upewnij się, że KeepWithGroupwłaściwość jest ustawiona na After.

Te KeepWithGroupokreśla właściwość, która grupa, do której statyczne potrzeb państw trzymać. Jeśli jest ustawiona Afterna, statyczny element członkowski pozostaje z grupą po nim lub pod nim, działając jako nagłówek grupy. Jeśli jest ustawiona na Before, statyczny element członkowski przylega do grupy przed nią lub nad nią, działając jako stopka grupy. Jeśli ustawione naNone , Reporting Services decyduje, gdzie umieścić statyczny element członkowski.

Teraz podczas przeglądania raportu nagłówki kolumn powtarzają się na każdej stronie elementu tablix.

Ten film pokazuje, jak ustawić to dokładnie tak, jak opisano w odpowiedzi.


1
Stacia, kiedy wybieram KeepWithGroup i próbuję zapisać, otrzymuję komunikat „Element tablix 'DetailTablix' ma nieprawidłowy element TablixMember. Wszystkie elementy TablixMember w tablicy TablixColumnHierarchy muszą mieć właściwość RepeatOnNewPage ustawioną na false.”. Jakieś pomysły?
moodboom

24
Zrozumiałem mój problem. Stacia Twoja odpowiedź jest absolutnie poprawna, po prostu jest to trudne. Zwróć uwagę, że Stacia mówi, aby zmienić obszar ROW Groups podczas ustawiania właściwości RepeatOnNewPage. Cała reszta tego rozwiązania dotyczy kolumn, ale musisz wybrać grupy wierszy (po lewej), a nie grupy kolumn (po prawej), nawet jeśli zaczynasz od kliknięcia listy rozwijanej w Kolumny. Dzięki Stacia, genialnie.
boom nastrojowy

5
+1 - właśnie skończyłem czytać kilkanaście poradników na ten temat w całym Internecie i jest to najlepsze, najbardziej bezpośrednie rozwiązanie problemu - wyjaśniasz również DLACZEGO opcje mają znaczenie, co jest fantastyczne. Dzięki!
JNK,

3
ten film pokazuje, jak ustawić to dokładnie tak, jak opisana odpowiedź: youtube.com/watch?v=WAO819-gkKw
ryż z krewetkami

8
KeepWithGroup = After było dla mnie kluczowe. Podobnie jak w przypadku wielu rzeczy Microsoftu, jest to nieoczywista sztuczka potrzebna do działania funkcji. Dziękuję Ci!
leqid

17

Mam 2.0 i powyżej znalazłem pomoc; jednak wybór statycznego z jakiegoś powodu nie podświetlił komórki. Wykonałem następujące kroki:

  1. W grupach kolumn wybierz zaawansowane, a pojawi się statystyka
  2. Kliknij statyczny, który pojawia się w grupach wierszy
  3. Ustaw KeepWithGroup na After i RepeatOnNewPage na true

Teraz nagłówki kolumn powinny się powtarzać na każdej stronie.


To zadziałało idealnie ... znacznie prostsze niż powyższa odpowiedź, która nie działała dla mnie.
R_Avery_17

niestety powoduje to, że ponownie zaczynam otrzymywać puste strony.
Mike,

10

Jak naprawiłem ten problem, ręcznie zmieniłem kod (z menu Widok / kod). Poniższa sekcja powinna zawierać tyle par, <TablixMember> </TablixMember>ile jest wierszy w elemencie tablix. W moim przypadku miałem więcej par <TablixMember> </TablixMember>niż liczba wierszy w elemencie tablix. Również po przejściu do „trybu zaawansowanego” (po prawej stronie „Grup kolumn”) liczba statycznych wierszy za „Grupami wierszy” powinna być równa liczbie wierszy w elemencie tablix. Sposobem na wyrównywanie jest zmiana kodu.

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

Ku mojemu zdziwieniu rozwiązanie to rozwiązało problem. Miałem element tablix z 6 wierszami (3 wiersze nagłówka plus grupa z nagłówkiem, szczegółami i wierszem stopki). Spojrzenie na źródło pokazało 6 <TablixRow> s, ale 7 <TablixMember> sw <TablixRowHierarchy>. Zgadłem, który z nich był dodatkowym (ten, który zawinął grupę) i usunąłem go. Renderowanie tej wersji nie powiodło się, ale komunikat o błędzie wskazywał, że w wierszu należy zmienić ustawienia <Repeat ...> i <KeepWith ...>, aby pasowały do ​​poprzednich; Zmieniłem je na „true” i „After” w trzecim (statycznym) rzędzie i voila! Szkoda, że ​​nie zrozumiałem;)!
GISmatters

Dzięki za to. Używam SSRS od ponad 10 lat i właśnie napotkałem ten problem - rzeczywiście, wokół grupy było dodatkowe opakowanie TablixMember (bez wątpienia z eksperymentów z dodawaniem i usuwaniem grup). Wyczyszczenie listy członków rozwiązało tajemniczy, niepowtarzalny nagłówek.
Carl Daniel

Dzięki musiałem usunąć dwa nadmiarowe wiersze elementu TablixMember, które zostały zgrupowane i nie zawierały żadnych danych. Znakiem tego dla mnie w moim raporcie było to, że zamiast jednej były dwie statyczne grupy wierszy. Kiedy usunąłem nadmiar XML-a, zagnieżdżanie powtarzających się wierszy zaczęło działać.
Noppadet

1
Dziękuję Ci. Tylko to rozwiązanie zadziałało w przypadku mojego raportu, w którym miałem podobny problem.
Syed

najwyraźniej brakuje odpowiedniego ustawienia w programie Visual Studio. Tak więc wskazówki dotyczące „ustawień zaawansowanych” odnoszące się do ReportBuilder nie pomogły. Ręczna edycja pliku działała jak marzenie. Dzięki!
MovGP0

9

Otwórz Advanced Modew okienku Grupowania. (Kliknij strzałkę po prawej stronie grup kolumn i wybierz opcję Tryb zaawansowany).

W obszarze Grupy wierszy (nie Grupy kolumn) kliknij grupę statyczną, która podświetli odpowiednie pole tekstowe w elemencie tablix.

Klikaj na każdą grupę statyczną, aż podświetli skrajny lewy nagłówek kolumny. Na ogół jest to pierwsza wymieniona grupa statyczna.

W siatce właściwości:

  • ustawiony KeepWithGroupnaAfter
  • ustawiony RepeatOnNewPagena Trueza powtarzanie nagłówków
  • zestaw FixedDatado Truedo utrzymywania nagłówki widoczne

5

Innym sposobem na osiągnięcie tego, jeśli nadal masz ten problem, jest wykonanie następujących czynności:

  • Wyczyść cały tekst nagłówka tabeli, pozostaw go pusty.
  • W sekcji „Nagłówek” raportów dodaj pola tekstowe wewnątrz prostokąta, każde pole tekstowe będzie reprezentować nagłówek kolumny tabeli.
  • Ponieważ ten prostokąt znajduje się w sekcji Nagłówek raportów, będzie wyświetlany na wszystkich stronach raportów.

Dzięki, Sufianie.


2

Udało mi się stworzyć nowy raport od podstaw.

To zrobione i nowy raport działa, porównam 2 pliki .rdl w Visual Studio. Są w formacie XML i mam nadzieję, że szybki WindDiff lub coś innego ujawni, na czym polega problem.

Początkowy wygląd pokazuje, że istnieje 700 linii kodu lub nieco większa różnica między obydwoma plikami, przy czym większy z dwóch to uszkodzony plik. Pobieżne spojrzenie na tagi TablixHeader nie ujawniło niczego oczywistego.

Ale w moim przypadku był to uszkodzony plik .rdl. To było pierwotnie skopiowane z raportu roboczego, więc w procesie usuwania tego, co nie zostało ponownie użyte, mogło to spowodować uszkodzenie. Jednak w innych raportach, w których wykonano ten sam proces, nagłówki mogły się powtarzać, gdy zostały wprowadzone prawidłowe ustawienia we właściwościach.

Mam nadzieję że to pomoże. Jeśli masz złożony raport, nie jest to szybka naprawa, ale działa.

Być może porównanie znanych dobrych plików XML z wadliwymi po twojej stronie byłoby dobrym postem na forum. Spróbuję tego na moim końcu.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.