Has tenido la oportunidad de utilizar el Servidor de Reportes en Firefox? Si lo ha hecho notará que existe un problema con este navegador al mostrar los reportes.

Básicamente, el problema radica en que el navegador carga el tamaño por defecto del reporte cuando se inicia la página. Luego que los datos son procesados y mostrados en el reporte, el navegador no modifica el tamaño.

Para solucionar esto, podría instalar un plug in, el cual puede ser descargado desde MS Report Server Fixes. Sin embargo, el problema con esta solución es que el plug in se debe instalar en cada computadora que accesará al servidor de reportes.

Una mejor solución es tomar la genial idea de Jim Wilson e implementarla en su control de visor de reportes. En mi caso, mejré el código para darle una mejor apariencia:

  <script type="text/javascript">
      function Load() {
          if (/Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent)) {
              if (document.getElementsByTagName('iframe').length) {
                  // Add a new style node to make sure all iframes are affected - even those not yet in the DOM.
                  var style = document.createElement('style'); 
                 style.appendChild(document.createTextNode('iframe{position:absolute;z-index:1}'));
                  document.getElementsByTagName('head')[0].appendChild(style);
              }
              if (document.getElementsByTagName('style').length) {
                  // Grab the inline style element and filter out bad values.
                  var styles = document.getElementsByTagName('style');
                  for (var i = 0; i < styles.length; i++) {
                      var style = styles[i];
                      style.innerHTML = style.innerHTML.replace(/overflow-x:hidden;?/, '');
                  }
              }  
          document.getElementById('ReportFramectl146').style.width= document.documentElement.clientWidth;  
         document.getElementById('ParameterTable_ctl146_ctl00').style.width= document.documentElement.clientWidth;  
         document.getElementById('oReportDiv').style.width= document.documentElement.clientWidth;
          }
      }
  </script>

 Luego, llame la función en evento load de la página. Por ejemplo:

<body style="margin: 0px; overflow: auto" onload="Load()">

Yo ya realizé la correción en eI Administrador y el Servidor de Reportes. Pueden descargar los siguientes archivos y sobreescribirlos en sus respectivas carpetas de su servidor:

Report.aspx para ser copiado en C:\Program Files\Microsoft SQL Server\MSRS10.MSSQLSERVER\Reporting Services\ReportServer\Pages

ReportViewer.aspx para ser copiado en C:\Program Files\Microsoft SQL Server\MSRS10.MSSQLSERVER\Reporting Services\ReportManager\Pages

De esta manera,  podrá ver ahora los reportes correctamente en Firefox.

Referencias:

[1] Jim Wilson, http://userscripts.org, 2006

[2] Sergio Tarrillo, http://geeks.ms/, 2008

1 comments:


I'm really enjoying the design and layout of your website.
Qassim & QU