Закрепить заголовки столбцов в браузере при прокрутке

Я пытаюсь заморозить все заголовки столбцов в отчете при прокрутке вниз. Я прочитал множество статей о том, как перейти в расширенный режим, выбрать заголовок и установить для параметра FixedData значение True, KeepWithGroup - значение After, RepeatOnNewPage - значение True. Это работает при предварительном просмотре отчета, но не работает в браузере. Я пробовал использовать IE 11, Chrome и другие браузеры, но ни один из них не исправляет заголовки столбцов при прокрутке.

Я потратил часы, пытаясь заставить это работать, и прочитал такие статьи, как: Закрепить заголовок столбца при прокрутке и Закрепление заголовков столбцов при прокрутке в SSRS, но ни один из них не делает этого в браузере.

Я попытался создать простой табличный отчет с помощью мастера отчетов и следуя этим инструкциям, но он все равно не работает. Это очень важно для начала работы с SSRS. Я использую SSRS 2012. Любая помощь будет принята с благодарностью.


person Jeff Stock    schedule 17.01.2014    source источник
comment
Отображаются ли отчеты в PDF, HTML или другом формате?   -  person JSuar    schedule 20.01.2014
comment
Отчет отображается в браузере. Он не работает ни в элементе управления Report Viewer, ни в диспетчере отчетов.   -  person Jeff Stock    schedule 20.01.2014
comment
Итак, из того, что я здесь читаю, функция замораживания может поддерживаться не во всех форматах вывода. Вот почему я спросил, как это отображается в браузере.   -  person JSuar    schedule 20.01.2014
comment
Диспетчер отчетов, предварительный просмотр отчета и средство управления просмотром отчетов действительно поддерживают его, что я и пытаюсь сделать здесь.   -  person Jeff Stock    schedule 20.01.2014
comment
Это должно иметь какое-то отношение к экземпляру служб отчетов на сервере, потому что он работает в предварительной версии. При просмотре любого отчета панель инструментов можно прокручивать, что всегда должно быть исправлено. Что-то не так с конфигурацией. Я собираюсь попробовать полностью переустановить SSRS на сервере отчетов.   -  person Jeff Stock    schedule 21.01.2014
comment
Я добавил этот код в javascript на сервере отчетов, чтобы исправить просмотр отчетов в других браузерах: function pageLoad () {var element = document.getElementById (ctl32_ctl09); если (элемент) {element.style.overflow = visible; }} Однако это привело к тому, что фиксированные заголовки не были исправлены в диспетчере отчетов. Я удалил этот код, и фиксированные заголовки заработали, но только в диспетчере отчетов в IE. Это не работает в средстве просмотра отчетов, которое является моим основным способом просмотра отчетов.   -  person Jeff Stock    schedule 22.01.2014


Ответы (5)


Перед установкой этих свойств крайне важно выбрать правильный «статический» член. Для вашего сценария, я думаю, вам нужен статический член в списке групп строк.

Если имеется несколько «статических» элементов, выберите их по очереди и обратите внимание, куда переместится поле выбора в вашем табликсе - это может помочь выбрать правильный - обычно последний.

Мой любимый пост по этому поводу от Роберта Б.

http://blogs.msdn.com/b/robertbruckner/archive/2008/10/13/repeat-header-and-visible-fixed-header-table.aspx

Удачи - после 5 лет и 3 релизов это все еще такая непостижимая путаница ...

person Mike Honey    schedule 21.01.2014
comment
Я следовал этим точным инструкциям снова и снова, но строка заголовка не оставалась неизменной. Я создал простой отчет как в BI Development Studio, так и в Report Builder, и оба они дали одинаковые результаты. У кого-нибудь еще это работает в SSRS 2012? Панель инструментов должна оставаться неизменной, потому что она тоже не работает? - person Jeff Stock; 21.01.2014
comment
Звучит действительно странно. Как именно отчет отображается в браузере? - person Mike Honey; 22.01.2014
comment
У меня он работал в диспетчере отчетов, но не в средстве просмотра отчетов. См. Мой последний комментарий выше. - person Jeff Stock; 22.01.2014

Это безумная идея, но можете ли вы вместо использования средства просмотра отчетов отобразить отчет в формате HTML и добавить его на веб-страницу с классом CSS, который изменит заголовок на position:fixed;?

person adam0101    schedule 24.01.2014

Похоже, фиксированные заголовки просто не работают в элементе управления средства просмотра отчетов ASP.NET. У меня есть простая aspx-страница с элементом управления ReportViewer, тестируемая в IE 11. Фиксированные заголовки работают в Preview и Report Manager, но не в элементе управления ASP.NET Report Viewer. Поэтому я решил просто показывать свои отчеты с помощью встроенного средства просмотра отчетов. Так работают фиксированные заголовки столбцов.

person Jeff Stock    schedule 22.01.2014
comment
Это все еще проблема без исправления для просмотра в браузере? Просто наткнулся на ту же проблему и не может заставить отчет работать в Microsoft Edge. - person R_Avery_17; 25.10.2017
comment
Я считаю, что это все еще проблема, хотя я еще не пробовал это в SSRS 2016. - person Jeff Stock; 26.10.2017

Я потратил пару дней на изучение именно этой проблемы. Работал в предварительной версии, не работал при развертывании. Я заметил, что мои фиксированные колонны перестали работать несколько лет назад.

Мой прорыв произошел, когда я начал тестирование с использованием свежей установки SSRS 2012, и замораживание строк и столбцов работало отлично. Сравнивая различия между этой системой и моей действующей системой, я обнаружил, что проблема заключалась в изменении ReportingServices.js для исправления пустых отчетов, отображаемых в Chrome.

Принуждение el.style.overflow = "visible" вместо значения по умолчанию "auto" прерывает "замораживание" в IE. Наш веб-разработчик изменил оператор if, чтобы он не заменял IE, проверив, существует ли функция, отличная от IE (window.addEventListener).

if (el  && window.addEventListener)
    el.style.overflow = "visible";

Итак, полный код, добавленный в свежий ReportingServices.js, выглядит следующим образом:

function pageLoad() {
   el = document.getElementById("ctl32_ctl09"),

   //Fix Chrome invisible report
   if (el  && window.addEventListener)
      el.style.overflow = "visible";
}
if (window.addEventListener) {
   window.addEventListener('load', pageLoad, false);
} else {
   window.attachEvent('onload', pageLoad);
}

C: \ Program Files \ Microsoft SQL Server \ MSRS11.MSSQLSERVER \ Reporting Services \ ReportManager \ js \ ReportingServices.js

person Bluey    schedule 19.01.2016
comment
Можете ли вы сказать мне, какую именно версию SQL Server 2012 вы использовали? Если он был до SP1, он может соответствовать моей текущей настройке, где я наблюдаю аналогичное поведение в IE 11 и 10, но не в любых других версиях IE или последних версиях Chrome. Спасибо! - person idclaar; 09.05.2016

Мне удалось заставить заголовки моих столбцов зависнуть в IE 9. В IE 11 были проблемы. IE 11 также не отображал вертикальные и горизонтальные полосы прокрутки. Решение (для меня) заключалось в переводе IE 11 в режим совместимости.

Инструкция по использованию режима совместимости. 1) Щелкните правой кнопкой мыши верхнюю часть окна, а затем выберите отображение «строки меню» 2) в меню выберите инструменты 3) Щелкните «Просмотр совместимости», чтобы добавить текущий URL-адрес в список страниц, отображаемых в представлении совместимости. , этим списком можно управлять, щелкнув "Настройки просмотра в режиме совместимости"

Надеюсь, это поможет ... Я не мог найти это задокументировано в другом месте.

person Barry    schedule 11.05.2015