Um tempo atrás recebi um comentário muito interessante no meu artigo sobre o Crystal Reports no Visual Studio 2013. O Paulo César Lopes de Sousa, que é leitor do meu site, estava com um problema. Basicamente, o Crystal Reports parou de funcionar depois de atualizar para o Windows 10. Depois de muita tentativa e erro, conseguimos resolver o problema. E é justamente a solução para esse problema que eu vou apresentar no artigo de hoje.
Entendendo o problema
Imagine o seguinte cenário: você está com o Visual Studio 2013 instalado no Windows 8.1 utilizando o Crystal Reports for Visual Studio SP 14. Aí você decide, finalmente, atualizar para o Windows 10 (ou melhor, você não aguentava mais o Windows falando todo dia para você “Atualiza aí para o Windows 10, por favor, atualiza aí vai, não custa nada, vai atualizar?“).
Ao abrir os seus projetos desktop que utilizam o Crystal Reports, tudo continua funcionando que é uma beleza. Porém, sabe aquele projetinho web que também utiliza o Crystal Reports? Vamos ver se ele continua funcionando? Pois é, os relatórios não funcionam mais. No lugar deles, aparece uma página em branco. O que fazer?
Pesquisando a solução
Primeiramente, atualizamos o Crystal Reports para a versão mais nova (SP 15). Porém, nada feito. O resultado continua o mesmo. Páginas em branco ao tentarmos acessar os relatórios do Crystal Reports em qualquer browser que seja.
Qual é a saída agora? Procurar a solução na internet, é claro. Pesquisando por esse problema, acabei chegando em um post no fórum da SAP (atual dona do Crystal Reports):
I can’t see reports in the browser
Porém, tentei seguir as instruções desse artigo e não consegui resolver o problema (e o Paulo César, aquele leitor do meu site, também não conseguiu).
E qual a solução que realmente funciona?
Achei muito estranho porque uma pessoa tinha feito um comentário naquele post do fórum da SAP falando que a solução apresentada tinha funcionado:
Eu postei uma resposta perguntando mais detalhes, mas, obviamente, ele não respondeu. A propósito, pessoal, gostaria de deixar uma pequena nota aqui: se o seu problema foi resolvido com a ajuda de um fórum (ou blog) e depois de um tempo alguém pede ajuda para você sobre o mesmo tópico, por favor, responda a dúvida da pessoa! Retribua a ajuda que te deram, OK?
Enfim, como o usuário não me respondeu, resolvi dar uma olhada mais a fundo no link que ele tinha utilizado para resolver o problema. E não é que, nas entrelinhas, tinha um pequeno detalhe que eu não tinha seguido?
Vou detalhar agora para você a solução que eu utilizei (e que depois o Paulo César acabou confirmando que funcionou no ambiente dele também).
1 – Copie a pasta do Crystal Reports no diretório do seu site
A pasta do Crystal Reports fica localizada em “C:\inetpub\wwwroot\aspnet_client\system_web\4_0_30319“. Você precisa copiar a pasta chamada “crystalreportviewers13” desse diretório para o diretório do seu site (no mesmo nível em que as pastas “bin“, “App_Data“, “App_Start“, etc, ficam).
2 – Adicione o Section Group do Crystal Reports no web.config
Abra o seu arquivo web.config e, dentro da tag “configSections“, adicione o seguinte código:
<sectionGroup name="businessObjects"> <sectionGroup name="crystalReports"> <section name="rptBuildProvider" type="CrystalDecisions.Shared.RptBuildProviderHandler, CrystalDecisions.Shared, Version=13.0.2000.0, Culture=neutral,PublicKeyToken=692fbea5521e1304, Custom=null" /> <section name="crystalReportViewer" type="System.Configuration.NameValueSectionHandler" /> </sectionGroup> </sectionGroup>
3 – Adicione a tag “businessObjects” no web.config
Ainda dentro do arquivo web.config, logo após o fechamento da tag “configSections” (ou seja, logo depois do </configSections>), adicione o seguinte código:
<businessObjects> <crystalReports> <rptBuildProvider> <add embedRptInResource="true" /> </rptBuildProvider> <crystalReportViewer> <add key="ResourceUri" value="/crystalreportviewers13" /> </crystalReportViewer> </crystalReports> </businessObjects>
E é justamente nesse código que mora o problema. Se olharmos o post que sugere essa solução, bem nas entrelinhas o autor fala que esse código em alguns casos funciona com um “~” e em outros casos funciona sem o “~“:
Ou seja, essa solução exatamente como eu apresentei aqui funcionou no meu cenário e também no cenário do Paulo César. Porém, caso ela não funcione no seu cenário, tente adicionar o “til” na linha correspondente ao ResourceUri:
<add key="ResourceUri" value="~/crystalreportviewers13" />
No meu caso só funcionou ao remover o “til“, mas, nunca se sabe, né?
Concluindo
Esse artigo, além de explicar passo a passo como resolver a situação em que o Crystal Reports para de funcionar ao atualizarmos para o Windows 10, ele também é uma lição de que devemos ler detalhadamente as instruções dos artigos. Muitas vezes a solução para o nosso problema pode estar nas entrelinhas.
E você, também passou por esse problema? Resolveu dessa forma? Deixe-nos a sua experiência nos comentários.
Antes de me despedir, convido você a inscrever-se na minha newsletter. Ao fazer isso, você receberá um e-mail toda semana sobre o artigo publicado, ficará sabendo em primeira mão sobre o artigo da próxima semana e receberá também dicas “bônus” que eu só compartilho por e-mail. Além disso, você já deve ter percebido que eu recebo muitas sugestões de temas e eu costumo dar prioridade às sugestões vindas de inscritos da minha newsletter. Inscreva-se utilizando o formulário logo abaixo.
Até a próxima!
André Lima
The post Crystal Reports parou de funcionar depois de atualizar para o Windows 10. O que fazer? appeared first on André Alves de Lima.