22 02 2017
Ativando o Crystal Reports no Visual Studio 2015
No meu último vídeo eu mostrei como ativar o Report Viewer no Visual Studio 2015. Aproveitando essa onda de relatórios, no vídeo de hoje eu resolvi mostrar como ativar o Crystal Reports no Visual Studio 2015.
O Crystal Reports é uma ferramenta de geração de relatórios poderosíssima e super conhecida no mercado. Existe uma versão gratuita praticamente sem limitações e que pode ser instalada em conjunto com o Visual Studio (inclusive na edição Community!). Veja só como ativá-lo neste vídeo:
O procedimento é muito simples. Basta acessarmos a página de downloads do Crystal Reports para Visual Studio e baixarmos o “Support Pack” mais atual. A instalação é muito tranquila, no famoso estilo “next, next, finish“.
Na última etapa da instalação o instalador vai perguntar se você quer instalar a runtime do Crystal Reports (que é necessária para conseguirmos visualizar os relatórios em tempo de execução). Eu costumo pular essa etapa e instalar manualmente as runtimes (colunas “MSI 32 Bit” e “MSI 64 Bit” da página de downloads). Faço isso de forma manual, primeiro a 32 bits e depois a 64 bits, porque antigamente existia um bug que, se você instalasse primeiro a runtime 64 bits, você não conseguiria instalar a runtime 32 bits depois. Não sei se esse bug já foi corrigido, mas, para evitar problemas, eu continuo fazendo essa instalação manual.
E no Visual Studio 2017?
No momento da gravação desse vídeo (fevereiro de 2017), o Visual Studio 2017 ainda não era suportado. Porém, como a SAP já colocou uma informação na página de downloads falando que essa versão ainda não é suportada, acredito que com um próximo “Support Pack” eles adicionarão o suporte ao Visual Studio 2017. Tudo indica que o processo de instalação continuará o mesmo.
Assine a minha newsletter
Antes de me despedir, convido você a inscrever-se na minha newsletter. Ao fazer isso, você terá acesso aos projetos de exemplo utilizados nos artigos, receberá um e-mail toda semana sobre o artigo publicado e ficará sabendo também em primeira mão sobre o artigo da próxima semana, além de receber dicas “bônus” que eu só compartilho por e-mail. Inscreva-se utilizando o formulário logo abaixo.
Até a próxima!
André Lima
Photo by Peter Shanks used under Creative Commons
https://pixabay.com/en/startup-start-up-notebooks-creative-593327/
Song Rocket Power Kevin MacLeod (incompetech.com)
Licensed under Creative Commons: By Attribution 3.0 License
http://creativecommons.org/licenses/by/3.0/
Não reinvente a roda! Utilize componentes prontos no desenvolvimento da sua aplicação Falei algumas besteiras sobre o PostgreSQL, veja aqui as correções
Bom dia, André.
Estou com problema na execução dos relatório Crystal na máquina do cliente, sempre me retorna falha ao carregar as informações do banco de dados. Na maquina de desenvolvimento isso não ocorre. abaixo um fragmento do meu código com os dados que estou passando para o rpt.
rpt.Load(rPath);
crConnectionInfo.Type = ConnectionInfoType.CRQE;
crConnectionInfo.ServerName = “192.162.12.13”;
crConnectionInfo.DatabaseName = “Base_Transplastico”;
crConnectionInfo.UserID = “sa”;
crConnectionInfo.Password = “visual”;
crConnectionInfo.AllowCustomConnection = false;
crConnectionInfo.IntegratedSecurity = false;
CrTables = rpt.Database.Tables;
foreach (CrystalDecisions.CrystalReports.Engine.Table CrTable in CrTables)
{
CrTable.LogOnInfo.ConnectionInfo = crConnectionInfo;
crtableLogoninfo = CrTable.LogOnInfo;
crtableLogoninfo.ReportName = rpt.Name;
crtableLogoninfo.TableName = CrTable.Name;
CrTable.ApplyLogOnInfo(crtableLogoninfo);
}
rpt.SetDatabaseLogon(crConnectionInfo.UserID, crConnectionInfo.Password, crConnectionInfo.ServerName, crConnectionInfo.DatabaseName);
SqlConnection objConexao = new SqlConnection(connStr);
SqlCommand objCommand = new SqlCommand(MsgSQL, objConexao);
SqlDataAdapter objAdapter = new SqlDataAdapter();
DataSet objDataSet = new DataSet();
objCommand.Connection = objConexao;
objAdapter.SelectCommand = objCommand;
Os relatório ficam em loop pedindo os dados para acesso o banco de dados.
Será que você já viu esse erro em algum momento. Por enquanto obrigado. E suas dicas/exemplos sempre me ajudam no dia a dia de desenvolvimento. Valeu.
Olá Oduvaldo!
Aparentemente o seu código está correto.. Você testou no computador de desenvolvimento apontando exatamente para o mesmo banco de dados que você está utilizando em produção? Pode ser que tenha alguma diferençazinha no schema entre o banco que você está testando e o banco de produção, o que costuma causar esse tipo de comportamento..
Algumas coisas que você pode tentar:
– Abrir o relatório no Crystal e dar um “Verify Database”
– No código, coloque uma chamada para reportDocument.VerifyDatabase
– Tente adicionar (se você ainda não tiver adicionado) uma chamada para seuControleCrystal.Refresh
– Se você já tiver uma chamada para Refresh (item anterior), tente remover
Tente esses procedimentos e me avisa se algum deles funcionou.. Outra opção seria carregar os dados em um DataSet e enviá-los para o relatório através do método reportDocument.SetDataSource.. Dessa forma o relatório nem precisaria saber onde é que está o banco de dados (os dados seriam passados através do DataSet que já estaria preenchido)..
Abraço!
André Lima
Bom dia, André
Eu tou a ter um problema no Crystal Report pretendo fazer uma impressao em simultanio de recibo de salarios sem repitir o trabalhador.
ou melhor imprimir salarios dos trabalhadoros em simultanio. Imprimir Recibos em massa dos trabalhador nao um a um.
Olá Bonifácio!
Não consegui entender muito bem o que você está querendo fazer.. Será que você poderia tentar explicar de outra forma? Você tem uma lista de trabalhadores com os seus salários, aí você quer imprimir essas informações com o Crystal Reports? Qual é a dificuldade exatamente?
Abraço!
André Lima
Olá André.
Estou com uma dúvida e gostaria da sua opinião.
Estou desenvolvendo um projeto no vs 2013. Existe algum problema de compatibilidade do crystal se eu trabalhar no vs 2015 e depois voltar para o 2013 novamente?
Olá Daniel!
Apesar de eu particularmente nunca ter feito esse teste, em teoria deve funcionar sem problema nenhum.. A versão do Crystal Reports que funciona em conjunto com o Visual Studio é sempre a 13, independente da versão do Visual Studio.. A única coisa que muda é o “Service Pack” do Crystal Reports (ou “Support Pack”, como a SAP costuma chamar).. Para o Visual Studio 2013, você precisará pelos menos do SP 9 e para o Visual Studio 2015 você precisará pelo menos do SP 15..
Concluindo: eu acredito que você não terá problema nenhum, mas recomendo que você faça um teste com algum relatório simples para ter certeza.. Depois volta aqui e conta pra gente o resultado.. ;)
Abraço!
André Lima
Cara,eu instalei a mesma versao que usava no 2013 e funcionou. Criei em um e consegui esitar no outro. O problema agora foi na publicacao da aplicacao. Ele reclama da falta de um tal de log4net na execucao do relatorio na maquina do usuário. Na maquina do dev essa referência existe, mas na do usuário nao. Estou achando que tem a ver com a publicação do clickonce.
Olá Daniel!
Se você está publicando com o ClickOnce e a aplicação está reclamando que está faltando algum arquivo na hora de executar, muito provavelmente o ClickOnce está instalando a runtime antiga (que acredito que não utilizava o log4net e agora utiliza nas versões mais novas).. Não tem como você instalar a última runtime do Crystal Reports manualmente no computador cliente para ver se o problema não é resolvido?
Abraço!
André Lima
Pois bem. Acabei de descobrir que os computadores dos clientes nao tem nenhuma runtime instalada (e os outros reports antigos funcionam normalmente nessas maquinas). Estou desenvolvendo no vs2015 em outra maquina. Quando desenvolvia no VS2013 na maquina antiga (mesma configuração da maquina nova) tudo funcionava normalmente. Nessa maquina nova com VS2015 estou usando a mesma versao do runtime que usava na maquina antiga. Mesma versao do Runtime e mesma versao do crysta para VS.
Não cheguei a instalar o Runtime pq de qualquer forma eu nao poderia instalar ela nas outras maquinas de usuarios que usam a aplicação.
Agora fiquei nesse impasse…
Olá Daniel!
Cara, não sei o que você poderia fazer nesse caso.. O que eu tentaria era atualizar o redistributable que o ClickOnce vai utilizar para o Crystal Reports na hora da instalação.. Se você procurar por “ClickOnce” na página de downloads do Crystal Reports no site da SAP (link que eu compartilhei neste artigo mesmo), você encontrará dois links:
Tente utilizar um desses dois links (dependendo da arquitetura da sua aplicação) como fonte do Crystal no ClickOnce..
Abraço!
André Lima
Bom dia André,
Tudo bem?
Primeiramente parabéns pelo conteúdo do blog.
Tenho uma dúvida, poderia me auxiliar por favor? Quanto ao Crystal reports (runtime) e ao Crystal reports for Visual Studio. Há algum custo para utilização ou distribuição dos mesmos? Ou a licença aplica-se apenas ao Produto Full do Crystal Reports?
Obrigado!
Olá Danilo!
A runtime e o Crystal Reports for Visual Studio são gratuitos.. Como você disse, a licença só se aplica ao produto completo do Crystal Reports, que traz algumas funcionalidades a mais que a versão gratuita..
Abraço!
André Lima
Olá Andre, Parabéns pelo conteúdo.
Estou criando um sistema em windows forms e queria saber se no instalador(setup) tem como já instalar as dependências do crystal sem ser preciso o cliente tenha que fazer isso manualmente(como por exemplo em jogos que instala directx e etc)?
Olá Daybson!
Neste vídeo eu mostro um exemplo disso, veja se te ajuda:
Criando um instalador com o Visual Studio 2015
Abraço!
André Lima
Olá Andre, obrigado vou dar uma olhada no vídeo.
Me surgiu um problema com o Crystal Reports.
Aqui no trabalho usamos o VS 2010 e relatórios em Crystal Reports. Quando eu instalei a Versão para VS 2013/2015/2017 modificou para o 2010 também, ou seja, deu erro nos projetos aqui. Tem como ter as 2 versões distintas? Quando fui desinstalar o CR e instalar novamente para o 2010 não vi a opção de mudar o caminho de instalação, e acredito que no mais atual também não tem como mudar.
Olá Daybson!
Infelizmente, que eu saiba, não dá para ter múltiplas versões instaladas.. A mais nova sempre acaba sobrepondo as mais antigas.. Se você encontrar uma maneira de rodar duas em paralelo, volta aqui e conta pra gente..
Abraço!
André Lima