У меня есть несколько простых отчетов SSRS 2008 R2
, но они вообще не отображаются в Safari или Chrome. Согласно электронной документации Microsoft, эти браузеры поддерживаются ограниченно. Однако я ничего не вижу после того, как часы «Загрузка» данных завершаются. Панель параметров и раздел навигации по хлебным крошкам вверху страницы есть. Кроме того, я могу сохранять / экспортировать в любой формат в Safari и Chrome. Он просто не будет отображать сам раздел отчета, который просто пуст.
Могу ли я использовать сертификаты и защищенные соединения (в настоящее время не настроен с HTTPS, только HTTP)? Есть ли какие-либо конфигурации на стороне сервера, которые нужно настроить? Кому-нибудь удалось отобразить ЛЮБЫЕ отчеты в Safari / Chrome с использованием предыдущих версий SSRS (2005)?
Я использую Safari 5.0.4
и Chrome 10.0.648.151
. Я знаю сходство этих двух браузеров в том, что они оба основаны на WebKit .
Отчет успешно отображается в Internet Explorer 8 (конечно) и Firefox 4.0.
Я был бы очень признателен, если бы кто-нибудь мог пролить свет на это.
Ответы:
Окончательное решение (работает и в SSRS 2012!)
Добавьте следующий сценарий в « C: \ Program Files \ Microsoft SQL Server \ MSRS10_50.MSSQLSERVER \ Reporting Services \ ReportManager \ js \ ReportingServices.js » (на сервере SSRS):
На самом деле я не знаю, всегда ли имя div
ctl31_ctl10
: в моем случае это так (вместо этого в SQL Server 2012 обнаружен azzlakctl32_ctl09
).Если это решение не работает, просмотрите HTML-код в своем браузере, чтобы узнать, правильно ли работал сценарий, изменив свойство overflow: auto на overflow: visible .
Решение для управления ReportViewer
Вставьте эту строку стиля на
.aspx
страницу (или в связанный.css
файл, если он доступен):Причина
Chrome и Safari отображают переполнение: автоматически по-разному относительно Internet Explorer.
HTML-страница, созданная отчетами SSRS 2008 R2, содержит div со стилем overflow: auto , который превращает отчет в невидимый отчет.
Изменение вручную (с помощью окна отладки Chrome) окончательное переполнение HTML : автоматически при переполнении: видимое Я могу видеть отчеты в Chrome.
Мне нравится решение Тима ; это легко и работает.
Но по-прежнему существует проблема: каждый раз, когда пользователь меняет параметры (в моих отчетах используются параметры!), AJAX обновляет div, тег overflow: auto перезаписывается, и ни один сценарий не меняет его. В этом техническом примечании объясняется, в чем проблема.
Мистер Эйнарк предложил мне решение здесь .
Любые функции с таким именем будут автоматически вызываться ASP.NET Ajax, если он существует на странице, также после каждого частичного обновления. Если вы сделаете это, вы также можете удалить атрибут onload из тега body
Итак, я написал улучшенный сценарий, который показан в решении.
источник
Решение на основе CSS
Мне удалось добавить следующее в таблицу стилей для служб Reporting Services, и это исправило это для меня в Chrome.
Отказ от ответственности: это не было тщательно протестировано на совместимость между браузерами.
Добавьте это в начало
ReportingServices.css
файла.Для меня этот файл находится по адресу:
C:\Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\ReportManager\Styles\ReportingServices.css
источник
Это известная проблема . Проблема в том, что тег div имеет стиль «overflow: auto», который, по-видимому, плохо реализован с WebKit, который используется Safari и Chrome (см. Ответ Эмануэля Греко ). Я не знал, как воспользоваться предложением Эмануэля использовать элемент RS: ReportViewerHost, но решил это с помощью JavaScript.
Проблема
Решение
Поскольку «overflow: auto» указано в атрибуте style элемента div с идентификатором «ctl31_ctl10», мы не можем переопределить его в файле таблицы стилей, поэтому я обратился к JavaScript. Я добавил следующий код в "C: \ Program Files \ Microsoft SQL Server \ MSRS10_50.MSSQLSERVER \ Reporting Services \ ReportManager \ js \ ReportingServices.js"
Запись
Похоже, есть решение для SSRS 2005, которое я не пробовал, но я не думаю, что оно применимо к SSRS 2008, потому что я не могу найти класс «DocMapAndReportFrame».
источник
Общесистемное решение на основе CSS
Для этого не требуются фреймы JavaScript или Ajax или любая другая оболочка. Он был протестирован в Internet Explorer, Firefox, Safari и Chrome.
Это можно исправить на уровне таблицы стилей в сервере отчетов.
Сначала перейдите в каталог, в котором установлены службы отчетов, в моем случае ( SQL Server 2012 SP1) это:
В этом каталоге вы найдете файл с именем reportserver.config.
См. Раздел Настройка таблиц стилей для средства просмотра HTML и диспетчера отчетов .
В этот файл вставьте одну строку XML, например (из приведенного выше документа):
Сохраните это.
В приведенной выше ссылке они не сообщают, что эта запись полностью переопределяет таблицу стилей по умолчанию. Мои первые попытки получить отчеты для рендеринга сработали, добавив таблицу стилей div, все остальное было сломано. Как только я понял, что это изменение в файле reporserver.config не дополняет, а фактически заменяет таблицу стилей по умолчанию, я скопировал ее в таблицу стилей по умолчанию, и все начало работать.
Затем спуститесь в каталог стилей (
C:\Program Files\Microsoft SQL Server\MSRS11.MSSQLSERVER\Reporting Services\ReportServer\Styles
).Сделайте копию файла с именем SP_Full.css и назовите копию SafariChromeFix.css. На этом этапе SafariChromeFix.css должен быть идентичен SP_Full.css.
Отредактируйте SafariChromeFix.css и добавьте следующие строки вверху:
Сохрани это.
После сохранения все существующие отчеты в этом экземпляре служб Reporting Services будут отображаться во всех браузерах, включая Chrome и Safari.
Пожалуйста, обратите внимание:
Это не только возможно, но и весьма вероятно, что reportserver.config будет перезаписан обновлениями служб отчетов, поэтому
<HTMLViewerStyleSheet>SafariChrome</HTMLViewerStyleSheet>
со временем вам, возможно, придется добавить в него тег.Это также дает нам возможность перейти к таблице стилей по умолчанию и внести множество других пользовательских изменений, начиная с того, что уже работает. А поскольку это не таблица стилей по умолчанию, ваш новый пользовательский файл CSS не перезаписывается во время обновлений и исправлений.
источник
В моем случае оскорбительный DIV - "ctl31_ctl09", поэтому, если вышеуказанное решение не работает для вас, попробуйте перейти
var element = document.getElementById("ctl31_ctl10");
наvar element = document.getElementById("ctl31_ctl09");
источник
Мое решение заключалось в том, чтобы добавить следующее
<script>
:Сценарий нацелен на родительский элемент 1 видимого содержимого отчета и устанавливает каждый раз при загрузке отчета 2, включая перелистывание многостраничного отчета.
style.overflow:visible
if (window.addEventListener && document.querySelector) window.addEventListener("load", function () { // drop out if Sys.Application.add_load is undefined if (!window.Sys || !Sys.Application || !Sys.Application.add_load) return; // register a function for when report data is loaded Sys.Application.add_load(function () { // get the report content control var n = document.querySelector("[id^=VisibleReportContent]"); if (n) { // get the report content control's parent n = n.parentNode; if (n) { // revert overflow:hidden to "visible" n.style.overflow = "visible"; } } }); });
1 Это означает , что мы не должны предназначаться сгенерированные идентификаторы , которые имеют тенденцию к изменению, то есть:
ctl31_ctl09
,ctl31_ctl10
,ctl32_ctl09
и т.д.2 См
Sys.Application.add_load()
источник
В выпуске служб Reporting Services для SQL Server 2014 добавлена поддержка браузера Google Chrome, но пока нет поддержки для iOS. Подробности смотрите здесь .
источник
Для меня это имя было « ctl32_ctl09 » (SSRS из SQL Server 2012 SP1, MSRS11).
источник
Мне пришлось зайти в Chrome F12и заметить, что у меня ctl32 , что в моем div _ctl09, а не ctl31_ctl09.
Это для 64-разрядной версии Windows Server 2008 R2 с SQL Server 2012 . Добавьте сценарий, а затем перезапустите SSRS и очистите кеш браузера.
// Исправлено, чтобы Chrome отображал отчеты SSRS
источник
К сожалению, основной ответ нарушает плавающие (абсолютное положение) столбцы в отчетах Internet Explorer. Поэтому я немного изменил его, что мне не нравится, так как он специально ищет WebKit, но работает:
источник
Чтобы обойти необходимость жесткого кодирования идентификатора элемента, я отредактировал файл ReportingServices.js на сервере RS @ [Drive]: \ Program Files \ Microsoft SQL Server \ [Экземпляр служб Reporting Services] \ Reporting Services \ ReportManager \ js \ ReportingServices.js чтобы включить некоторый код для получения jQuery, загрузить его на страницу, а затем найти все элементы, для которых установлено автоматическое переполнение.
Вставьте следующий код в верхнюю часть файла ReportingServices.js
Следующая после нее строка - это то, что было изначально в файле JS.
После этого добавьте следующий код
Я только что закончил тестирование с Chrome 27 и IE 10 на экземпляре RM2012, и он отлично работал.
источник
Проблема все еще существует в Chrome 22.0.1229.79.
YMMV , но я обнаружил, что удаление высоты из тега ReportViewer решает эту проблему.
У меня была эта проблема с отчетами SSAS, но не с SSRS. Я не мог понять почему, пока не проверил различия на страницах (консультант сделал отчеты SSAS). Он устанавливал ReportViewer Height = 60%, а в отчетах SSRS высота не указывалась.
После удаления высоты отображаются мои отчеты.
источник
Для SSRS 2012 в Windows Server 2008 R2 x64 рабочий сценарий:
Все предложенные выше версии вообще не работали.
источник
Одна из проблем с
overflow:visible
исправлением заключается в том, что плавающие заголовки не работают во всех браузерах. Следующий сценарий оставит Internet Explorer в покое и применит исправление только к браузерам, отличным от Internet Explorer. При этом все функции сохраняются для пользователей Internet Explorer, и другие браузеры по-прежнему могут просматривать отчеты.источник
Я попробовал эти подходы, и у меня они сработали, но наши системные администраторы скептически отнеслись к этим изменениям.
Вместо того, чтобы устанавливать высоту на 100%
ReportViewer
, я использовал фиксированную высоту, и она работала в моем приложении для Internet Explorer и Chrome.источник
Мне никогда не удавалось отображать отчеты в Chrome. В большей части документации Microsoft это даже не перечислено, поэтому я предполагаю, что у Chrome должны быть проблемы с интерпретацией чего-либо в ASP.
См. Раздел Поддержка браузером служб Reporting Services и Power View .
Я использую Chrome 11 и наблюдаю то же поведение, что и вы.
источник
У меня была такая же проблема с просмотром отчетов в Chrome. Я исправил это, добавив в Google Chrome расширение «SSRS Report Fix». https://chrome.google.com/webstore/detail/ssrs-report-fix/fjbdfjiheheafbioiejbdpalmojkeobk
источник