SSRS 2008 R2 - SSRS 2012 - ReportViewer: Rapports dans Safari/Chrome, mais fonctionne très bien dans Firefox/Internet Explorer 8... pourquoi?
J'ai quelques rapports simples en SSRS 2008 R2
, mais ils ne s'affichent pas du tout dans Safari ou Chrome. Selon Microsoft Livres en Ligne, ces navigateurs sont pris en charge de manière limitée. Cependant, je ne peux pas voir quoi que ce soit après les données de "Chargement" de l'horloge complète. La barre de paramètres et de mie de pain section de navigation en haut de la page sont tous là. Aussi, je peux Enregistrer/Exporter vers n'importe quel format sur Safari et Chrome. Il ne peut pas afficher le rapport de la section elle-même, qui est juste vide.
Suis-je censé utiliser les certificats et les connexions sécurisées (actuellement pas de programme d'installation avec HTTPS, HTTP uniquement)? Il n'existe aucun côté serveur configurations qui ont besoin d'être modifié? Quelqu'un a eu le succès de l'affichage de TOUT rapports sur Safari/Chrome à l'aide précédente SSRS versions (2005)?
Je suis en utilisant Safari 5.0.4
et Chrome 10.0.648.151
. Je sais que la similitude de ces deux navigateurs est, ils sont tous deux basés sur WebKit.
Le rapport affiche correctement sur Internet Explorer 8 (bien sûr) et Firefox 4.0.
Je serais vraiment reconnaissant si quelqu'un peut jeter quelque lumière sur ce point.
- dupliquer: stackoverflow.com/questions/5968082/...
- Greg H regarde ma solution et laissez-moi savoir si cela résout le problème
Vous devez vous connecter pour publier un commentaire.
Solution ultime (fonctionne dans SSRS 2012 trop!)
Ajouter le script suivant pour "C:\Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\ReportManager\js\ReportingServices.js" (sur le Serveur SSRS):
En fait, je ne sais pas si le div du nom est toujours
ctl31_ctl10
: dans mon cas, c'est (au lieu de plus de SQL Server 2012 azzlak trouvéctl32_ctl09
).Si cette solution ne fonctionne pas, regardez le code HTML de votre navigateur pour voir si le script a fonctionné correctement la modification de la overflow:auto propriété overflow:visible.
Solution pour le contrôle ReportViewer
Insérer ce style de ligne dans le
.aspx
page (ou dans un lié.css
fichier, si disponible):Raison
Chrome et Safari rendre overflow:auto de manière différente concernant Internet Explorer.
La page HTML produite par SSRS 2008 R2 rapports contiennent un div qui a overflow:auto style, et il s'avère rapport dans un invisible rapport.
Changer manuellement (à l'aide de google Chrome fenêtre de débogage) HTML final overflow:auto dans overflow:visible je peux voir les rapports sur Chrome.
J'aime Tim solution; il est facile et de travail.
Mais il y a encore un problème: Tout le temps à l'utilisateur de changer les paramètres (mes rapports d'utiliser des paramètres!) AJAX actualise la div, la overflow:auto balise est réécrit, et pas de script modifie.
Cette note technique détaillée explique ce qu'est le problème.
M. einarq m'a suggéré la solution ici.
Toutes les fonctions de ce nom sera appelé automatiquement par ASP.NET Ajax s'il existe sur la page, également après chaque mise à jour partielle. Si vous faites cela, vous pouvez également supprimer l'attribut onload de la balise body
J'ai donc écrit l'amélioration de script qui est indiqué dans la solution.
CSS Solution basée sur
J'ai été en mesure d'ajouter ce qui suit à la feuille de style pour Reporting Services, et il a fixé pour moi sur Chrome.
Avertissement: Ce n'est pas testés pour la compatibilité inter-navigateur.
Ajouter que le début de la
ReportingServices.css
fichier.Pour moi, ce fichier est situé à:
C:\Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\ReportManager\Styles\ReportingServices.css
C'est un problème connu. Le problème est qu'une balise div a le style "overflow: auto", ce qui apparemment n'est pas bien mis en œuvre avec WebKit utilisé par Safari et Chrome (voir Emanuele Greco réponse). Je ne savais pas comment prendre avantage de Emanuele suggestion d'utiliser le RS:ReportViewerHost élément, mais je l'ai résolu en utilisant JavaScript.
Problème
Solution
Depuis "overflow: auto" est spécifié dans l'attribut style de l'élément div avec l'id "ctl31_ctl10", on ne peut pas le remplacer dans un fichier de style, donc j'ai eu recours à JavaScript. J'ai ajouté le code suivant "C:\Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\ReportManager\js\ReportingServices.js"
Note
Il semble y avoir un solution pour SSRS 2005 que je n'ai pas essayé, mais je ne pense pas qu'il est applicable à SSRS 2008 parce que je ne trouve pas le "DocMapAndReportFrame" de la classe.
CSS système à base de solution à l'échelle de
Cela ne nécessite pas de JavaScript ou de l'Ajax de cadres ou de tout autre emballage. Il a été testé sur Internet Explorer, Firefox, Chrome et Safari.
Cela peut être fixée à la Feuille de Style au niveau du Serveur de Rapports.
Tout d'abord, accédez au répertoire dans lequel est installé reporting services, dans mon cas (SQL Server 2012 SP1) c'est:
Dans ce répertoire, vous trouverez un fichier nommé reportserver.config.
Voir Personnaliser les Feuilles de Style pour HTML Viewer et de Report Manager.
Dans ce fichier insérer un seul XML ligne comme (à partir du document ci-dessus):
Enregistrer que.
Ce qu'ils ne pas vous dire dans le lien ci-dessus, c'est que cette entrée remplace la feuille de style par défaut complètement. Mes premières tentatives pour obtenir les rapports de rendre travaillé par l'ajout d'un div de la feuille de style, tout le reste a été brisé. Une fois que j'ai compris que cette édition de la reporserver.fichier de configuration n'a pas augmenté, mais remplace la feuille de style par défaut, je l'ai copiée dans la feuille de style par défaut et tout a commencé à travailler.
Ensuite, descendez dans les Styles de répertoire (
C:\Program Files\Microsoft SQL Server\MSRS11.MSSQLSERVER\Reporting Services\ReportServer\Styles
).Faire une copie du fichier nommé SP_Full.css et le nom de la copie SafariChromeFix.css. À ce stade, SafariChromeFix.css devrait être identique à SP_Full.css.
Modifier SafariChromeFix.css et ajoutez les lignes suivantes en haut:
L'enregistrer.
Une fois que c'est enregistré, tous les rapports existants sur cette instance de Reporting Services rendu sur tous les navigateurs, y compris google Chrome et Safari.
Veuillez Noter:
Il est non seulement possible, mais extrêmement probable que reportserver.config seront remplacés par des mises à jour de reporting services, de sorte que vous pouvez avoir à ajouter le
<HTMLViewerStyleSheet>SafariChrome</HTMLViewerStyleSheet>
balise en elle au fil du temps.Cela nous donne également un endroit de rupture dans la feuille de style par défaut et faire beaucoup d'autres modifications personnalisées à partir de quelque chose qui est déjà au travail. Et puisque ce n'est pas la feuille de style par défaut, votre nouveau fichier CSS spécifique n'est pas remplacé lors de mises à jour et des correctifs.
Dans mon cas, le fautif DIV est "ctl31_ctl09" donc, si la solution ci-dessus ne fonctionne pas pour vous, essayez de changer de
var element = document.getElementById("ctl31_ctl10");
àvar element = document.getElementById("ctl31_ctl09");
Ma solution était d'ajouter le suivant
<script>
à:Le script objectifs de la visible le contenu du rapport du parent1 et définit
style.débordement:visible
chaque fois que le rapport des charges2 -y compris la pagination dans un rapport de plusieurs pages.1 Cela signifie que nous n'avons pas de cible id générés qui ont tendance à changer, c'est à dire:
ctl31_ctl09
,ctl31_ctl10
,ctl32_ctl09
, etc.2 Voir
Sys.Application.add_load()
SQL Server 2014 version de Reporting Services ajoute le support pour le navigateur Google Chrome, mais il n'y a pas de support pour iOS encore. Voir les détails ici.
Pour moi, le nom a été "ctl32_ctl09" (SSRS de SQL Server 2012 SP1, MSRS11).
J'ai dû aller dans Chrome avec F12 et remarqué que j'avais ctl32_ctl09, pas ctl31_ctl09 dans mon div.
C'est pour Windows Server 2008 R2 64 bits avec SQL Server 2012. Ajouter le script, puis redémarrez SSRS et effacez le cache du navigateur.
//Fix pour permettre Chrome pour afficher les Rapports SSRS
Malheureusement, la principale réponse des pauses flottant (position absolue) des colonnes dans Internet Explorer les rapports. Donc, j'ai légèrement modifié, ce que je n'aime pas car il est spécifiquement à la recherche d'WebKit, mais ça fonctionne:
HTML:
Pour contourner avoir à coder en dur l'IDENTIFIANT de l'élément, j'ai édité ReportingServices.js fichier sur le RS server @ [Lecteur]:\Program Files\Microsoft SQL Server\[Instance de Reporting Services]\Reporting Services\ReportManager\js\ReportingServices.js pour inclure du code pour aller chercher de jQuery, la charger dans la page, et ensuite de trouver tous les éléments où le débordement est réglé sur auto.
Insérez le code suivant en haut de la ReportingServices.js fichier
La ligne suivante après qu'est ce qui a été à l'origine dans le fichier JS.
Après cela, ajoutez le code suivant
Je viens de finir de tester ce avec Chrome 27 et IE 10 sur un RM2012 instance et il a très bien fonctionné.
Le problème existe toujours dans Chrome 22.0.1229.79.
YMMV, mais j'ai trouvé que la suppression de la hauteur de la ReportViewer tag résout ce problème.
J'ai eu ce problème avec SSAS des rapports, mais pas la SSR ceux. Je ne comprenais pas pourquoi jusqu'à ce que j'ai vérifié les différences dans les pages (un consultant a fait le SSAS rapports). Il a été la mise en ReportViewer Hauteur=60%, et les rapports SSRS n'étaient pas en spécifiant la hauteur.
Une fois que j'ai enlevé la Hauteur, mes rapports affichés.
Pour SSRS 2012 sur Windows Server 2008 R2 x64, un script est:
Tous les suggéré ci-dessus, les versions n'ont pas de travail du tout.
Un problème avec le
overflow:visible
correctif est que flottant en-têtes sont cassés sur tous les navigateurs. Le script suivant va quitter Internet Explorer seul et appliquer le correctif uniquement aux non-Internet Explorer les navigateurs. Avec cela, toutes les fonctionnalités sont conservés pour Internet Explorer et d'autres navigateurs peuvent toujours consulter les rapports.J'ai essayé les approches et cela a fonctionné pour moi, mais nos administrateurs système ont été sceptique au sujet de ces changements.
À la place de réglage de la hauteur jusqu'à 100% sur le
ReportViewer
, j'ai utilisé une hauteur fixe, et il a réussi à travailler dans mon application pour Internet Explorer et Chrome.Je n'ai jamais eu de chance avec l'affichage des rapports dans google Chrome. La plupart de la documentation de Microsoft n'a même pas la liste donc je suppose Chrome doit avoir de la difficulté à interpréter quelque chose dans l'ASP.
Voir Prise en charge du navigateur pour Reporting Services et Power View.
Je suis sous Chrome 11 et de l'expérience le même comportement que vous.
J'ai eu le même problème avec l'affichage de rapports sur Chrome. Je l'ai corrigé en ajoutant l'extension "Rapport SSRS Correctif" pour Google Chrome.
https://chrome.google.com/webstore/detail/ssrs-report-fix/fjbdfjiheheafbioiejbdpalmojkeobk