126

У меня есть таблица с большим количеством строк, которые охватывают несколько страниц. Я установил строку заголовка Tablix Repeat на каждой странице, но это не работает. Я где-то читал, что это известная ошибка в построителе отчетов 3.0. Это правда? Если нет, есть ли что-то еще, что нужно сделать?Tablix: Повторять строки заголовков на каждой странице не работает - построитель отчетов 3.0

ответ

324

Это зависит от используемой структуры таблиц. В таблице, например, у вас нет групп столбцов, поэтому службы Reporting Services не распознают, какие текстовые поля являются заголовками столбцов, а свойство RepeatColumnHeaders - True не работает.

Вместо этого, вам необходимо:

  1. Open Advanced Mode на панели группировкам. (Нажмите на стрелку справа от группы столбцов и выберите Advanced Mode.)
    • Screenshot
  2. В области групп строк (не столбцы групп), нажмите на статическую группу, в которой подчеркивается соответствующим текстовое поле в tablix. Щелкните каждую группу Static, пока она не выделит самый левый заголовок столбца. Обычно это первая группа Static.
  3. В окне «Свойства» установите для свойства RepeatOnNewPage значение True.
    • Screenshot
  4. Убедитесь, что свойство KeepWithGroup устанавливается в After.

Свойство KeepWithGroup указывает, к какой группе относится статический член. Если установлено значение After, то статический член придерживается группы после нее или ниже нее, выступая в качестве заголовка группы. Если установлено значение Before, статический член придерживается группы до или выше, действуя как нижний колонтитул группы. Если установлено значение None, службы Reporting Services решают, куда ставить статический член.

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

This видеоролик показывает, как установить его в точности как описанный ответ.

+1

Stacia, когда я выбираю KeepWithGroup и попытайтесь сохранить, я получаю: «В теге« DetailTablix »есть недопустимый Та blixMember. Все элементы TablixMember в библиотеке TablixColumnHierarchy должны иметь свойство RepeatOnNewPage равным false. «Любые идеи? – moodboom

+17

Я понял свою проблему. Stacia ваш ответ абсолютно прав, это просто сложно, но все в порядке. Обратите внимание, что Stacia говорит об изменении область ROW Groups при настройке свойства RepeatOnNewPage. Все остальное в этом решении касается столбцов, но вам нужно выбрать группы Row (слева), а не группы столбцов (справа), даже если вы начинаете с нажатия кнопки выпадающее меню в столбцах. Спасибо Stacia, блестящий. – moodboom

+3

+1 - Я только что закончил читать около десятка пошаговых инструкций по этому поводу в Интернете, и это лучшее, что можно сказать прямо в этом вопросе, - вы также объясняете, ПОЧЕМУ имеют значение варианты, которые фантастическое. Спасибо! – JNK

5

Другой способ сделать это, если вы до сих пор этот вопрос, делая следующее:

  • Очистить весь текст заголовка таблицы оставить его пустым.
  • В разделе «Заголовок» в отчетах добавить текстовые поля внутри прямоугольника, , каждое текстовое поле будет представлять заголовок столбца для таблицы.
  • Поскольку этот прямоугольник находится в разделе Заголовки отчетов, он отображает на всех страницах отчета.

Thanks, Sufian.

2

Что сработало для меня, так это создать новый отчет с нуля.

Это сделано, и новый отчет работает, я сравню файлы .rdl в Visual Studio. Они представлены в формате XML, и я надеюсь на быстрый WindDiff или что-то покажет, в чем проблема.

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

Но в моем случае это был поврежденный файл .rdl. Это было первоначально скопировано из рабочего отчета, поэтому в процессе удаления того, что не было повторно использовано, это могло бы испортить его. Тем не менее, в других отчетах, где этот процесс был выполнен, заголовки могли бы повториться, когда правильные настройки были сделаны в свойствах.

Надеюсь, это поможет. Если у вас сложный отчет, это не быстрое решение, но оно работает.

Возможно, сравнение известных хороших файлов XML с неисправными на вашем конце станет хорошей отправкой на форум. Я буду пытаться это на моем конце.

10

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

  1. Под группами столбцов выберите продвинутый и статика будет отображаться
  2. Нажмите на статике, которая показывает в группах строк
  3. Set KeepWithGroup для After и RepeatOnNewPage к истинным

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

+0

Это сработало отлично ... намного проще, чем выше ответ, который не сработал для меня. – Neal1581

4

Как я исправил эту проблему, я вручную изменил код позади (из меню View/code). В приведенном ниже разделе должно быть столько числа пар <TablixMember> </TablixMember>, что и количество строк в таблице. В моем случае у меня было больше пар <TablixMember> </TablixMember>, чем количество строк в tablix. Также, если вы перейдете в «Расширенный режим» (справа от «Группы столбцов»), количество статических строк за «группами строк» ​​должно быть равно количеству строк в tablix. Способ сделать его равным - это изменить код.

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

К моему удивлению, это разрешило проблему. У меня был tablix w/6 rows (3 строки заголовка плюс группа с заголовком, деталью и строкой нижнего колонтитула). Глядя на источник показал 6 s, но 7 s в . Я сделал все возможное, чтобы узнать, какой из них был лишний (тот, который завернул группу) и удалил его. Эта версия не смогла выполнить рендеринг, но сообщение об ошибке показало, что строка должна иметь свои настройки и , чтобы они соответствовали предыдущим; Я изменил их на «true» и «After» в 3-й (Static) строке и voila! Хотелось бы, чтобы я действительно понял;)! – GISmatters

+0

Спасибо. Я использую SSRS уже более 10 лет и просто столкнулся с этой проблемой - действительно, в группе была добавлена ​​дополнительная оболочка TablixMember (без сомнения, из экспериментов с добавлением и удалением групп). Очистка списка участников разрешила таинственный неповторяющийся заголовок. –

6

Открыть Advanced Mode в группе Группирование. (Нажмите стрелку справа от групп столбцов и выберите «Расширенный режим».)

В области Группы строк (не группы столбцов) щелкните группу «Статические», в которой выделено соответствующее текстовое поле в tablix.

Щелкните каждую группу Static, пока она не выделит самый левый заголовок столбца. Обычно это первая группа Static.

В сетке свойств:

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

Awesome, FixedData to true важно, в противном случае ошибка ..... –

 Смежные вопросы

  • Нет связанных вопросов^_^