Tengo algunos informes sencillos SSRS 2008 R2
, pero no se muestran en Safari ni en Chrome. Según los Libros en línea de Microsoft, estos navegadores son compatibles de forma limitada. Sin embargo, no puedo ver nada después de que se completa el reloj de "Cargando" de datos. La barra de parámetros y la sección de navegación de pan rallado en la parte superior de la página están todas allí. Además, puedo guardar / exportar a cualquier formato en Safari y Chrome. Simplemente no mostrará la sección del informe en sí, que está en blanco.
¿Se supone que debo usar certificados y conexiones seguras (actualmente no está configurado con HTTPS, solo HTTP)? ¿Hay alguna configuración del lado del servidor que deba modificarse? ¿Alguien ha tenido éxito al mostrar CUALQUIER informe en Safari / Chrome usando versiones anteriores de SSRS (2005)?
Estoy usando Safari 5.0.4
y Chrome 10.0.648.151
. Sé que la similitud de estos dos navegadores es que ambos se basan en WebKit .
El informe se muestra correctamente en Internet Explorer 8 (por supuesto) y Firefox 4.0.
Realmente agradecería que alguien pudiera arrojar algo de luz sobre esto.
Respuestas:
Solución definitiva (¡también funciona en SSRS 2012!)
Agregue el siguiente script a " C: \ Archivos de programa \ Microsoft SQL Server \ MSRS10_50.MSSQLSERVER \ Reporting Services \ ReportManager \ js \ ReportingServices.js " (en el servidor SSRS):
En realidad, no sé si el nombre del div es siempre
ctl31_ctl10
: en mi caso lo es (en lugar de SQL Server 2012 se encontró azzlakctl32_ctl09
).Si esta solución no funciona, mire el HTML de su navegador para ver si el script ha funcionado correctamente cambiando la propiedad overflow: auto a overflow: visible .
Solución para el control ReportViewer
Inserte esta línea de estilo en la
.aspx
página (o en un.css
archivo vinculado , si está disponible):Razón
Desbordamiento de renderizado de Chrome y Safari : automático de forma diferente con respecto a Internet Explorer.
La página HTML producida por los informes de SSRS 2008 R2 contiene un div que tiene overflow: auto style, y convierte el informe en un informe invisible.
Cambio manual (usando la ventana de depuración de Chrome) desbordamiento de HTML final : automático en desbordamiento: visible puedo ver informes en Chrome
Amo la solución de Tim ; es fácil y funcional.
Pero todavía hay un problema: cada vez que el usuario cambia los parámetros (¡mis informes usan parámetros!) AJAX actualiza el div, la etiqueta overflow: auto se reescribe y ningún script lo cambia. Este detalle de nota técnica explica cuál es el problema.
El señor einarq me sugirió la solución aquí .
ASP.NET Ajax llamará automáticamente a cualquier función con este nombre si existe en la página, también después de cada actualización parcial. Si hace esto, también puede eliminar el atributo onload de la etiqueta del cuerpo
Así que escribí el script mejorado que se muestra en la solución.
fuente
Solución basada en CSS
Pude agregar lo siguiente a la hoja de estilo para Reporting Services y lo solucionó en Chrome.
Descargo de responsabilidad: esto no se ha probado a fondo para la compatibilidad entre navegadores.
Agregue eso al principio del
ReportingServices.css
archivo.Para mí, ese archivo se encuentra en:
C:\Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\ReportManager\Styles\ReportingServices.css
fuente
Este es un problema conocido . El problema es que una etiqueta div tiene el estilo "overflow: auto" que aparentemente no está bien implementado con WebKit que es utilizado por Safari y Chrome (ver la respuesta de Emanuele Greco ). No supe cómo aprovechar la sugerencia de Emanuele de usar el elemento RS: ReportViewerHost, pero lo resolví usando JavaScript.
Problema
Solución
Dado que "overflow: auto" se especifica en el atributo de estilo del elemento div con id "ctl31_ctl10", no podemos anularlo en un archivo de hoja de estilo, así que recurrí a JavaScript. Agregué el siguiente código a "C: \ Archivos de programa \ Microsoft SQL Server \ MSRS10_50.MSSQLSERVER \ Reporting Services \ ReportManager \ js \ ReportingServices.js"
Nota
Parece haber una solución para SSRS 2005 que no he probado, pero no creo que sea aplicable a SSRS 2008 porque no puedo encontrar la clase "DocMapAndReportFrame".
fuente
Solución para todo el sistema basada en CSS
Esto no requiere ningún marco JavaScript o Ajax ni ningún otro contenedor. Fue probado en Internet Explorer, Firefox, Safari y Chrome.
Esto se puede solucionar en el nivel de la hoja de estilo en el servidor de informes.
Primero, navegue hasta el directorio donde están instalados los servicios de informes, en mi caso ( SQL Server 2012 SP1) es:
En ese directorio, encontrará un archivo llamado reportserver.config.
Consulte Personalizar hojas de estilo para el visor HTML y el Administrador de informes .
En ese archivo, inserte una sola línea XML como (del documento anterior):
Salva eso.
Lo que ellos no dicen en el enlace anterior es que esta entrada anula completamente la hoja de estilo predeterminada. Mis primeros intentos de hacer que los informes se rendericen funcionaron agregando una hoja de estilo div, todo lo demás estaba roto. Una vez que descubrí que esta edición en el archivo reporserver.config no aumentó, pero en realidad reemplaza la hoja de estilo predeterminada, la copié en la hoja de estilo predeterminada y todo comenzó a funcionar.
A continuación, descienda al directorio de estilos (
C:\Program Files\Microsoft SQL Server\MSRS11.MSSQLSERVER\Reporting Services\ReportServer\Styles
).Haga una copia del archivo llamado SP_Full.css y nombre la copia SafariChromeFix.css. En este punto, SafariChromeFix.css debería ser idéntico a SP_Full.css.
Edite SafariChromeFix.css y agregue las siguientes líneas en la parte superior:
Guárdalo.
Una vez que se guarda, todos los informes existentes en esta instancia de Reporting Services se mostrarán en todos los navegadores, incluidos Chrome y Safari.
Tenga en cuenta:
No solo es posible, sino muy probable que reportserver.config se sobrescriba con actualizaciones de los servicios de informes, por lo que es posible que tenga que agregar la
<HTMLViewerStyleSheet>SafariChrome</HTMLViewerStyleSheet>
etiqueta con el tiempo.Esto también nos da un lugar para entrar en la hoja de estilo predeterminada y realizar muchos otros cambios personalizados a partir de algo que ya está funcionando. Y como no es la hoja de estilo predeterminada, su nuevo archivo CSS personalizado no se sobrescribe durante las actualizaciones y los parches.
fuente
En mi caso, el DIV infractor es "ctl31_ctl09", por lo que si la solución anterior no funciona, intente cambiar
var element = document.getElementById("ctl31_ctl10");
avar element = document.getElementById("ctl31_ctl09");
fuente
Mi solución fue agregar lo siguiente
<script>
a:La secuencia de comandos se dirige al principal 1 del contenido del informe visible y establece cada vez que se carga el informe 2, incluida la paginación a través de un informe de varias páginas.
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 Esto significa que no tenemos que apuntar ids generados que tienen una tendencia a cambiar, es decir:
ctl31_ctl09
,ctl31_ctl10
,ctl32_ctl09
, etc.2 Ver
Sys.Application.add_load()
fuente
La versión de SQL Server 2014 de Reporting Services agrega compatibilidad con el navegador Google Chrome, pero todavía no hay compatibilidad con iOS. Vea los detalles aquí .
fuente
Para mí, el nombre era " ctl32_ctl09 " (SSRS de SQL Server 2012 SP1, MSRS11).
fuente
Tuve que ingresar a Chrome F12y noté que tenía ctl32 _ctl09, no ctl31_ctl09 en mi div.
Esto es para Windows Server 2008 R2 64Bit con SQL Server 2012 . Agregue el script y luego reinicie SSRS y borre la caché del navegador.
// Corrección para permitir que Chrome muestre informes SSRS
fuente
Desafortunadamente, la respuesta principal rompe las columnas flotantes (posición absoluta) en los informes de Internet Explorer. Por lo tanto, lo modifiqué ligeramente, lo que no me encanta ya que está buscando específicamente WebKit, pero está funcionando:
fuente
Para evitar tener que codificar el ID del elemento, edité el archivo ReportingServices.js en el servidor RS @ [Drive]: \ Program Files \ Microsoft SQL Server \ [Reporting Services Instance] \ Reporting Services \ ReportManager \ js \ ReportingServices.js para incluir algún código para obtener jQuery, cargarlo en la página y luego encontrar todos los elementos donde el desbordamiento está configurado en automático.
Inserte el siguiente código en la parte superior del archivo ReportingServices.js
Luego, la siguiente línea después de eso es lo que estaba originalmente en el archivo JS.
Después de eso, agregue el siguiente código
Acabo de terminar de probar esto con Chrome 27 e IE 10 en una instancia RM2012 y funcionó muy bien.
fuente
El problema aún existe en Chrome 22.0.1229.79.
YMMV , pero he descubierto que eliminar la altura de la etiqueta ReportViewer soluciona este problema.
Tenía este problema con los informes SSAS, pero no con los SSRS. No pude entender por qué hasta que verifiqué las diferencias en las páginas (un consultor había hecho los informes SSAS). Estaba estableciendo ReportViewer Height = 60% y los informes SSRS no especificaban la altura.
Una vez que eliminé la Altura, se mostraron mis informes.
fuente
Para SSRS 2012 en Windows Server 2008 R2 x64, un script de trabajo es:
Todas las versiones sugeridas anteriormente no funcionaban en absoluto.
fuente
Un problema con la
overflow:visible
solución es que los encabezados flotantes se rompen en todos los navegadores. La siguiente secuencia de comandos dejará a Internet Explorer solo y aplicará la corrección solo a los navegadores que no sean Internet Explorer. Con esto, toda la funcionalidad se conserva para los usuarios de Internet Explorer y otros navegadores aún pueden ver los informes.fuente
Probé los enfoques y funcionó para mí, pero nuestros administradores de sistemas se mostraron escépticos acerca de estos cambios.
En lugar de establecer la altura al 100% en el
ReportViewer
, utilicé una altura fija y logró funcionar en mi aplicación para Internet Explorer y Chrome.fuente
Nunca he tenido suerte con la visualización de informes en Chrome. La mayor parte de la documentación de Microsoft ni siquiera la incluye, así que supongo que Chrome debe tener problemas para interpretar algo en la ASP.
Consulte Compatibilidad con navegadores para Reporting Services y Power View .
Estoy ejecutando Chrome 11 y experimento el mismo comportamiento que tú.
fuente
Tuve el mismo problema con la visualización de informes en Chrome. Lo arreglé agregando la extensión "SSRS Report Fix" a Google Chrome. https://chrome.google.com/webstore/detail/ssrs-report-fix/fjbdfjiheheafbioiejbdpalmojkeobk
fuente