Tablix: Повтор рядків заголовків на кожній сторінці не працює - Builder 3.0


164

У мене є таблиця з великою кількістю рядків, що охоплюють кілька сторінок. Я встановив рядки заголовка властивості Tablix на кожній сторінці, але це не працює. Десь я читав, що це відома помилка у Report Builder 3.0. Це правда? Якщо ні, чи є ще щось, що потрібно зробити?

Відповіді:


427

Це залежить від структури, яку ви використовуєте. Наприклад, у таблиці немає груп стовпців, тому служба Reporting Services не розпізнає, які текстові поля є заголовками стовпців, а встановлення властивості RepeatColumnHeaders на True не працює.

Натомість вам потрібно:

  1. Відкрийте розширений режим на панелі «Групування». (Клацніть стрілку праворуч від Групи стовпців і виберіть Розширений режим.)
    • Знімок екрана
  2. У області груп рядків (не у групах стовпців) натисніть на групу статичного типу, яка виділяє відповідне текстове поле в таблицях. Клацніть кожну статистичну групу, поки вона не виділить заголовок крайнього лівого стовпця. Це, як правило, перша перерахована статична група.
  3. У вікні Властивості встановіть для RepeatOnNewPageвластивості значення True.
    • Знімок екрана
  4. Переконайтеся, що для KeepWithGroupвластивості встановлено значення After.

В KeepWithGroupвизначає властивість , яке група , до якої статичні потребам членів дотримуватися. Якщо встановлено, Afterстатичний член дотримується групи після нього або нижче, виконуючи функцію заголовка групи. Якщо встановлено значення Before, то статичний член дотримується групи перед, або над нею, виконуючи функцію нижнього колонтитулу групи. Якщо встановлено значення None, служба Reporting Services вирішує, де поставити статичний член.

Тепер, переглядаючи звіт, заголовки стовпців повторюються на кожній сторінці таблиць.

У цьому відео показано, як його встановити саме так, як описана відповідь.


1
Stacia, коли я вибираю KeepWithGroup і намагаюся зберегти, я отримую "Tablix 'DetailTablix' має недійсний TablixMember. Усі елементи TablixMember у TablixColumnHierarchy повинні мати властивість RepeatOnNewPage, встановлене на false." Будь-які ідеї?
moodboom

24
Я зрозумів свою проблему. Ваша відповідь Стація абсолютно правильна, це просто хитра справа. Зауважте, що Stacia говорить про зміну області ROW Groups при встановленні властивості RepeatOnNewPage. Все інше щодо цього рішення стосується стовпців, але вам потрібно вибрати групи рядків (зліва), а не групи стовпців (праворуч), хоча ви починаєте, натискаючи спадне меню у стовпцях. Спасибі Стація, блискуча.
moodboom

5
+1 - Я нещодавно прочитав близько десятка покрокових інструкцій з цього приводу по всьому Інтернету, і це найкраще пряме вирішення питання - ви також пояснюєте, ЧОМУ важливі варіанти, які є фантастичними. Дякую!
JNK

3
у цьому відео показано, як його встановити саме так, як описано у відповіді: youtube.com/watch?v=WAO819-gkKw
креветки з креветок

8
KeepWithGroup = Після був ключовим для мене. Як і занадто багато речей Microsoft, це не очевидний трюк, необхідний для роботи функції. Дякую!
leqid

17

Я маю 2.0 і знайшов вище, щоб допомогти; однак, вибір статики чомусь не виділяв клітинку. Я дотримувався цих кроків:

  1. Під групами стовпців виберіть розширені, і статистика з’явиться
  2. Клацніть на статику, яка відображається у групах рядків
  3. Встановіть KeepWithGroup на After і RepeatOnNewPage на true

Тепер заголовки стовпців повинні повторюватися на кожній сторінці.


Це спрацювало чудово .... набагато простіше, ніж вище відповідь, який не працював для мене.
R_Avery_17

на жаль, це змушує мене знову починати отримувати порожні сторінки.
Майк

10

Як я вирішив цю проблему, чи я вручну змінив код позаду (з меню Перегляд / код). Розділ нижче повинен містити стільки пар пар, <TablixMember> </TablixMember>скільки кількість рядків у таблицях. У моєму випадку у мене було більше пар, <TablixMember> </TablixMember>ніж кількість рядків у таблицях. Крім того, якщо ви переходите до "Розширеного режиму" (праворуч від "Групи стовпців"), кількість статичних рядків позаду "Групи рядків" має дорівнювати кількості рядків у таблицях. Спосіб зробити його рівним - це зміна коду.

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

На мій подив, це вирішило проблему. У мене був tablix w / 6 рядків (3 рядки заголовка плюс груповий ж / заголовок, деталі та рядок нижнього колонтитулу). Подивившись на джерело, показано 6 <TablixRow> s, але 7 <TablixMember> s у <TablixRowHierarchy>. Я найкраще здогадався про те, що було зайвим (той, який загорнув групу), і вилучив її. Цю версію не вдалося надати, але повідомлення про помилку вказувало на те, що рядки потрібно змінити параметри <Повторити ...> та <Утримувати з ...>, щоб відповідати попереднім; Я змінив їх на "true" і "After" у 3-му (Статичному) ряду та вуаля! Я б хотів, щоб насправді зрозумів;)!
GISmatters

Дякую за це Я використовую SSRS вже більше 10 років, і я просто натрапив на цю проблему - дійсно, навколо групи був додатковий обгортник TablixMember (без сумніву, експерименти із додаванням та видаленням груп). Прибирання списку членів вирішило загадковий неповторюваний заголовок.
Карл Даніель

Дякую, мені довелося видалити два надлишкових рядки TablixMember, які були згруповані та не мали даних. Ознакою цього в моєму звіті було те, що замість однієї було дві статичні групи рядків. Після того, як я видалив зайвий XML, вклавши повторювані рядки, почав працювати.
Ноппадет

1
Дякую. Тільки це рішення працювало на моєму звіті, коли я стикався з подібною проблемою.
Відбувся

мабуть, у Visual Studio відсутня правильна настройка. Тож підказки „розширених налаштувань”, які посилаються на ReportBuilder, не допомогли. Ручне редагування файлу працювало як шарм. Дякую!
MovGP0

9

Відкрити Advanced Modeна панелі "Групування". (Клацніть стрілку праворуч від Групи стовпців і виберіть Розширений режим.)

У області груп рядків (не у групах стовпців) натисніть на групу статичного типу, яка виділяє відповідне текстове поле в таблицях.

Клацніть кожну статистичну групу, поки вона не виділить заголовок крайнього лівого стовпця. Це, як правило, перша перерахована статична група.

У сітці властивостей:

  • встановити KeepWithGroupвAfter
  • набір RepeatOnNewPageдля Trueдля повторення заголовків
  • набір FixedDataдля Trueдля зберігання заголовків видимих

5

Ще один спосіб досягти цього, якщо у вас все ще виникає проблема, виконавши наступне:

  • Очистіть весь текст заголовка таблиці та залиште його порожнім.
  • У розділі "Заголовок" звітів додайте текстові поля всередині прямокутника, кожне текстове поле буде представляти заголовок стовпця для таблиці.
  • Оскільки цей прямокутник знаходиться у розділі Заголовок звітів, він відображатиметься на всіх сторінках звітів.

Спасибі, суфіане.


2

Що для мене спрацювало - створити новий звіт з нуля.

Це зроблено, і новий звіт працює, я порівняю 2 .rdl файли у Visual Studio. Вони у форматі XML, і я сподіваюся, що швидкий WindDiff або щось виявить, у чому проблема.

Початковий вигляд показує, що існує 700 рядків коду або трохи більше різниці між обома файлами, причому більший з 2 - це несправний файл. Побіжний погляд на теги TablixHeader не виявив нічого очевидного.

Але в моєму випадку це був пошкоджений файл .rdl. Спочатку це було скопійовано з робочого звіту, тому в процесі вилучення того, що не було повторно використане, це могло зіпсувати його. Однак в інших звітах, де робився цей самий процес, заголовки могли повторюватись, коли правильні налаштування були зроблені у Властивості.

Сподіваюся, це допомагає. Якщо у вас складний звіт, це не швидко виправити, але він працює.

Можливо, порівняння відомих хороших XML-файлів із несправними у вашому кінці зробить хороший пост на форумі. Я спробую це на своєму кінці.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.