Ich habe einige einfache Berichte in SSRS 2008 R2
, aber sie werden in Safari oder Chrome überhaupt nicht angezeigt. Laut Microsoft Books Online werden diese Browser nur eingeschränkt unterstützt. Ich kann jedoch nichts mehr sehen, nachdem die Uhr "Laden" abgeschlossen ist. Die Parameterleiste und der Brotkrumen-Navigationsbereich oben auf der Seite befinden sich alle dort. Außerdem kann ich in Safari und Chrome in jedem Format speichern / exportieren. Der Berichtsabschnitt selbst, der nur leer ist, wird einfach nicht angezeigt.
Soll ich Zertifikate und gesicherte Verbindungen verwenden (derzeit nicht mit HTTPS eingerichtet, sondern nur mit HTTP)? Gibt es serverseitige Konfigurationen, die angepasst werden müssen? Hat jemand Erfolg anzeigt hat ANY Berichte über Safari / Chrome mit früheren Versionen SSRS (2005)?
Ich benutze Safari 5.0.4
und Chrome 10.0.648.151
. Ich weiß, dass die Ähnlichkeit dieser beiden Browser darin besteht, dass beide auf WebKit basieren .
Der Bericht wird (natürlich) in Internet Explorer 8 und Firefox 4.0 erfolgreich gerendert.
Ich würde es wirklich begrüßen, wenn jemand etwas Licht ins Dunkel bringen könnte.
Antworten:
Ultimative Lösung (funktioniert auch in SSRS 2012!)
Fügen Sie das folgende Skript an " C: \ Programme \ Microsoft SQL Server \ MSRS10_50.MSSQLSERVER \ Reporting Services \ ReportManager \ js \ ReportingServices.js " (auf dem SSRS-Server) an:
Eigentlich weiß ich nicht, ob der Name des Div immer lautet
ctl31_ctl10
: in meinem Fall ist es (stattdessen über SQL Server 2012 Azzlak gefundenctl32_ctl09
).Wenn diese Lösung nicht funktioniert, überprüfen Sie den HTML-Code Ihres Browsers, um festzustellen, ob das Skript ordnungsgemäß funktioniert hat. Ändern Sie die Eigenschaft overflow: auto in overflow: visible .
Lösung für die ReportViewer-Steuerung
Fügen Sie diese Stilzeile in die
.aspx
Seite ein (oder in eine verknüpfte.css
Datei, falls verfügbar):Grund
Chrome und Safari rendern Überlauf: Auto anders als Internet Explorer.
Die von SSRS 2008 R2-Berichten erstellte HTML-Seite enthält ein div mit Überlauf: auto style und verwandelt den Bericht in einen unsichtbaren Bericht.
Manuelles Ändern (mithilfe des Chrome-Debug-Fensters) Endgültiger HTML- Überlauf: Automatisch im Überlauf: sichtbar Ich kann Berichte in Chrome sehen.
Ich liebe Tims Lösung . Es ist einfach und funktioniert.
Es gibt jedoch immer noch ein Problem: Jedes Mal, wenn der Benutzer Parameter ändert (meine Berichte verwenden Parameter!), Aktualisiert AJAX das div, wird das Tag " Überlauf: Auto" neu geschrieben und kein Skript ändert es. Dieses Technote-Detail erklärt, wo das Problem liegt.
Mr.einarq schlug mir hier die Lösung vor .
Alle Funktionen mit diesem Namen werden von ASP.NET Ajax automatisch aufgerufen, wenn sie auf der Seite vorhanden sind, auch nach jeder teilweisen Aktualisierung. In diesem Fall können Sie auch das Onload-Attribut aus dem Body-Tag entfernen
Also habe ich das verbesserte Skript geschrieben, das in der Lösung gezeigt wird.
quelle
CSS-basierte Lösung
Ich konnte dem Stylesheet für Reporting Services Folgendes hinzufügen, und es wurde für mich in Chrome behoben.
Haftungsausschluss: Dies wird nicht gründlich auf Cross-Browser-Kompatibilität getestet.
Fügen Sie das am Anfang der
ReportingServices.css
Datei hinzu.Für mich befindet sich diese Datei unter:
C:\Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\ReportManager\Styles\ReportingServices.css
quelle
Dies ist ein bekanntes Problem . Das Problem ist, dass ein div-Tag den Stil "overflow: auto" hat, der mit WebKit, das von Safari und Chrome verwendet wird, anscheinend nicht gut implementiert ist (siehe die Antwort von Emanuele Greco ). Ich wusste nicht, wie ich Emanueles Vorschlag nutzen sollte, das RS: ReportViewerHost-Element zu verwenden, aber ich löste es mit JavaScript.
Problem
Lösung
Da "overflow: auto" im style-Attribut des div-Elements mit der ID "ctl31_ctl10" angegeben ist, können wir es in einer Stylesheet-Datei nicht überschreiben, sodass ich auf JavaScript zurückgegriffen habe. Ich habe den folgenden Code an "C: \ Programme \ Microsoft SQL Server \ MSRS10_50.MSSQLSERVER \ Reporting Services \ ReportManager \ js \ ReportingServices.js" angehängt.
Hinweis
Es scheint eine Lösung für SSRS 2005 zu geben , die ich nicht ausprobiert habe, aber ich glaube nicht, dass sie auf SSRS 2008 anwendbar ist, da ich die Klasse "DocMapAndReportFrame" nicht finden kann.
quelle
CSS-basierte systemweite Lösung
Dies erfordert keine JavaScript- oder Ajax-Frames oder andere Wrapper. Es wurde auf Internet Explorer, Firefox, Safari und Chrome getestet.
Dies kann auf Stylesheet-Ebene in Report Server behoben werden.
Navigieren Sie zunächst zu dem Verzeichnis, in dem die Berichtsdienste installiert sind. In meinem Fall ( SQL Server 2012 SP1) ist dies:
In diesem Verzeichnis finden Sie eine Datei mit dem Namen reportserver.config.
Siehe Anpassen von Stylesheets für HTML Viewer und Report Manager .
Fügen Sie in diese Datei eine einzelne XML-Zeile ein (aus dem obigen Dokument):
Rette das.
Was sie Ihnen im obigen Link nicht sagen, ist, dass dieser Eintrag das Standard-Stylesheet vollständig überschreibt. Meine ersten Versuche, die Berichte zum Rendern zu bringen, funktionierten durch Hinzufügen eines Div-Stylesheets. Alles andere war kaputt. Nachdem ich herausgefunden hatte, dass diese Bearbeitung der Datei reporserver.config nicht erweitert wurde, sondern das Standard-Stylesheet ersetzt, kopierte ich das Standard-Stylesheet und alles begann zu funktionieren.
Als nächstes steigen Sie in das Styles-Verzeichnis ab (
C:\Program Files\Microsoft SQL Server\MSRS11.MSSQLSERVER\Reporting Services\ReportServer\Styles
) ab.Erstellen Sie eine Kopie der Datei SP_Full.css und benennen Sie die Kopie SafariChromeFix.css. Zu diesem Zeitpunkt sollte SafariChromeFix.css mit SP_Full.css identisch sein.
Bearbeiten Sie SafariChromeFix.css und fügen Sie die folgenden Zeilen oben hinzu:
Speichern Sie es.
Sobald dies gespeichert ist, werden alle vorhandenen Berichte zu dieser Instanz von Reporting Services in allen Browsern einschließlich Chrome und Safari gerendert.
Bitte beachten Sie:
Es ist nicht nur möglich, sondern äußerst wahrscheinlich, dass reportserver.config mit Aktualisierungen der Berichtsdienste überschrieben wird. Daher müssen Sie das
<HTMLViewerStyleSheet>SafariChrome</HTMLViewerStyleSheet>
Tag möglicherweise im Laufe der Zeit hinzufügen .Dies gibt uns auch die Möglichkeit, in das Standard-Stylesheet einzusteigen und viele andere benutzerdefinierte Änderungen vorzunehmen, beginnend mit etwas, das bereits funktioniert. Und da es sich nicht um das Standard-Stylesheet handelt, wird Ihre neue benutzerdefinierte CSS-Datei bei Upgrades und Patches nicht überschrieben.
quelle
In meinem Fall lautet der fehlerhafte DIV "ctl31_ctl09". Wenn die oben genannte Lösung für Sie nicht funktioniert, wechseln Sie
var element = document.getElementById("ctl31_ctl10");
zuvar element = document.getElementById("ctl31_ctl09");
quelle
Meine Lösung bestand darin, Folgendes hinzuzufügen
<script>
:Das Skript zielt auf die übergeordnete 1 des sichtbaren Berichtsinhalts ab und legt jedes Mal fest, wenn der Bericht 2 lädt - einschließlich Paging durch einen mehrseitigen Bericht.
style.overflow:visible
1 Das heißt , wir müssen nicht erzeugt ids Ziel , die eine Tendenz zur Veränderung haben, das heißt:
ctl31_ctl09
,ctl31_ctl10
,ctl32_ctl09
etc.2 See
Sys.Application.add_load()
quelle
Die SQL Server 2014-Version von Reporting Services bietet Unterstützung für den Google Chrome-Browser, iOS wird jedoch noch nicht unterstützt. Details finden Sie hier .
quelle
Für mich war der Name " ctl32_ctl09 " (SSRS von SQL Server 2012 SP1, MSRS11).
quelle
Ich musste mit Chrome gehen F12und bemerkte, dass ich ctl32 hatte _ctl09 hatte, nicht ctl31_ctl09 in meinem div.
Dies ist für Windows Server 2008 R2 64Bit mit SQL Server 2012 . Hängen Sie das Skript an, starten Sie SSRS neu und leeren Sie den Browser-Cache.
// Fix, damit Chrome SSRS-Berichte anzeigen kann
quelle
Leider unterbricht die Hauptantwort schwebende (absolute Position) Spalten in Internet Explorer-Berichten. Deshalb habe ich es leicht modifiziert, was ich nicht liebe, da es speziell nach WebKit sucht, aber es funktioniert:
quelle
Um zu umgehen, dass die Element-ID fest codiert werden muss, habe ich die Datei ReportingServices.js auf dem RS-Server unter [Laufwerk]: \ Programme \ Microsoft SQL Server \ [Instanz von Reporting Services] \ Reporting Services \ ReportManager \ js \ ReportingServices.js bearbeitet Um Code zum Abrufen von jQuery einzuschließen, laden Sie ihn in die Seite und suchen Sie alle Elemente, bei denen der Überlauf auf auto gesetzt ist.
Fügen Sie den folgenden Code oben in die Datei ReportingServices.js ein
Dann ist die nächste Zeile danach das, was ursprünglich in der JS-Datei war.
Fügen Sie danach den folgenden Code hinzu
Ich habe gerade das Testen mit Chrome 27 und IE 10 auf einer RM2012-Instanz beendet und es hat großartig funktioniert.
quelle
Das Problem besteht weiterhin in Chrome 22.0.1229.79.
YMMV , aber ich habe festgestellt, dass das Entfernen der Höhe aus dem ReportViewer-Tag dieses Problem behebt.
Ich hatte dieses Problem mit SSAS-Berichten, aber nicht mit den SSRS-Berichten. Ich konnte nicht herausfinden, warum, bis ich die Unterschiede auf den Seiten überprüft hatte (ein Berater hatte die SSAS-Berichte erstellt). Er hat ReportViewer Height = 60% festgelegt und in den SSRS-Berichten wurde die Höhe nicht angegeben.
Sobald ich Height entfernt habe, werden meine Berichte angezeigt.
quelle
Für SSRS 2012 unter Windows Server 2008 R2 x64 lautet ein funktionierendes Skript:
Alle oben vorgeschlagenen Versionen funktionierten überhaupt nicht.
quelle
Ein Problem mit dem
overflow:visible
Fix ist, dass schwebende Header in allen Browsern unterbrochen sind. Das folgende Skript lässt Internet Explorer in Ruhe und wendet den Fix nur auf Nicht-Internet Explorer-Browser an. Damit bleiben alle Funktionen für Internet Explorer-Benutzer erhalten, und andere Browser können die Berichte weiterhin anzeigen.quelle
Ich habe die Ansätze ausprobiert und es hat bei mir funktioniert, aber unsere Systemadministratoren standen diesen Änderungen skeptisch gegenüber.
Anstatt die Höhe auf 100%
ReportViewer
festzulegen, habe ich eine feste Höhe verwendet, die in meiner Anwendung für Internet Explorer und Chrome funktioniert hat.quelle
Ich hatte noch nie Glück, Berichte in Chrome anzuzeigen. In den meisten Dokumentationen von Microsoft wird es nicht einmal aufgeführt, daher gehe ich davon aus, dass Chrome Probleme beim Interpretieren von Elementen im ASP haben muss.
Siehe Browserunterstützung für Reporting Services und Power View .
Ich verwende Chrome 11 und habe das gleiche Verhalten wie Sie.
quelle
Ich hatte das gleiche Problem beim Anzeigen von Repports in Chrome. Ich habe das Problem behoben, indem ich Google Chrome die Erweiterung "SSRS Report Fix" hinzugefügt habe. https://chrome.google.com/webstore/detail/ssrs-report-fix/fjbdfjiheheafbioiejbdpalmojkeobk
quelle