Solução final (funciona no SSRS 2012 também!)
Anexe o seguinte script ao seguinte arquivo (no servidor SSRS)
C:\Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\ReportManager\js\ReportingServices.js
function pageLoad() {
var element = document.getElementById("ctl31_ctl10");
if (element)
{
element.style.overflow = "visible";
}
}
Observação : como azzlak observou, o nome do div nem sempre ctl31_ctl10. Para SQL 2012, tente ctl32_ctl09e para 2008 R2, tente ctl31_ctl09. Se esta solução não funcionar, examine o HTML do seu navegador para ver se o script funcionou corretamente alterando a overflow:autopropriedade para overflow:visible.
Solução para controle ReportViewer
Insira na .aspxpágina (ou em um .cssarquivo vinculado , se disponível) esta linha de estilo
#reportViewer_ctl09 {
overflow:visible !important;
}
Razão
O Chrome e o Safari são renderizados de overflow:automaneiras diferentes em relação ao IE.
SSRS HTML é QuirksMode HTML e depende de bugs do IE 5.5. Navegadores não-IE não têm o modo quirks do IE e, portanto, renderizam o HTML corretamente
A página HTML produzida pelos relatórios do SSRS 2008 R2 contém um divque possui overflow:autoestilo e transforma o relatório em um relatório invisível.
<div id="ctl31_ctl10" style="height:100%;width:100%;overflow:auto;position:relative;">
Posso ver relatórios no Chrome mudando manualmente overflow:autopara overflow:visiblena página da web produzida usando as Ferramentas de Desenvolvimento do Chrome ( F12).
Adoro a solução do Tim , é fácil e funciona.
Mas ainda há um problema: sempre que o usuário altera os parâmetros (meus relatórios usam parâmetros!), O AJAX atualiza o div, a tag overflow: auto é reescrita e nenhum script a altera.
Este detalhe de nota técnica explica qual é o problema:
Isso ocorre porque em uma página construída com painéis AJAX, apenas os painéis AJAX mudam de estado, sem atualizar a página inteira. Consequentemente, os OnLoadeventos que você aplicou na <body>tag são disparados apenas uma vez: a primeira vez que sua página é carregada. Depois disso, a alteração de qualquer um dos painéis AJAX não acionará mais esses eventos.
O usuário einarq sugeriu esta solução :
Outra opção é renomear sua função para pageLoad. Quaisquer funções com este nome serão chamadas automaticamente pelo asp.net ajax se existir na página, também após cada atualização parcial. Se você fizer isso, você também pode remover o atributo onload da tag body
Então escreveu o script aprimorado que é mostrado na solução.