Tablix: повторять строки заголовков на каждой странице, не работающей - Report Builder 3.0 - программирование
Подтвердить что ты не робот

Tablix: повторять строки заголовков на каждой странице, не работающей - Report Builder 3.0

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

4b9b3361

Ответ 1

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

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

  • Откройте расширенный режим на панели Группирование. (Нажмите стрелку справа от групп столбцов и выберите Расширенный режим.)
    • Screenshot
  • В области Группы строк (не группы столбцов) нажмите на группу Static, которая выделяет соответствующее текстовое поле в таблице. Щелкните каждую группу Static, пока она не выделит самый левый заголовок столбца. Обычно это первая группа Static.
  • В окне "Свойства" установите для свойства RepeatOnNewPage значение "Истина".
    • Screenshot
  • Убедитесь, что для свойства KeepWithGroup установлено значение After.

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

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

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

Ответ 2

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

  • В группе столбцов выберите расширенный, и статистика будет отображаться
  • Нажмите на статику, которая отображается в группах строк.
  • Установите KeepWithGroup на After и RepeatOnNewPage на true

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

Ответ 3

Другой способ сделать это, если у вас все еще есть эта проблема, заключается в следующем:

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

Спасибо, Суфьян.

Ответ 4

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

В области Группы строк (не группы столбцов) нажмите на группу Static, которая выделяет соответствующее текстовое поле в таблице.

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

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

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

Ответ 5

Как я исправил эту проблему, я вручную изменил код позади (из меню 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>

Ответ 6

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

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

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

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

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

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