Como configurar logon e utilizar o Crystal Reports com ASP.net e C# (Visual Studio 2010)
29/03/2012
0
Geralmente os desenvolvedores fazem os relatórios direcionados para um banco de dados, mas ao publicar no servidor ou quando o IP do servidor é modificado percebe-se que o relatório necessita de logon para poder ser aberto, o que é bastante desagradável para o usuário, criando uma vulnerabilidade para a aplicação. Para resolver este problema podemos configurar o relatório e a conexão em tempo de execução, para isto basta utilizar os métodos de configuração do crystal reports.
Ao me deparar com estes problemas relacionados e realizar consultas na web e no msdn, utilizei o código abaixo faz a conexão de logon do relatório.
Obs.: O relatório pode ser desenvolvido apontado para qualquer servidor, mas na hora de execução as configurações serão feitas antes da abertura do mesmo.
Como utilizar :
1)
Crie um relatório no crystal reports (Add - New Item - Crystal report).
Informe o nome que no exemplo é relatorio.rpt e salve.
Configure os campos que serão exibidos no relatório e salve.
2)
Crie uma página aspx (Add - New Item - web form).
Informe o nome que no exemplo é RelRelatorio.aspx e salve.
Insira o componente CrystalReportViewer no design da página.
informe a propriedade ID, que no exemplo é csRelatorio.
-- código do reportviewer com a exibição de conexão falsa.
Obs.: não esqueça de por no início < e no final o >
CR:CrystalReportViewer ID=csRelatorio runat=server AutoDataBind=true EnableDatabaseLogonPrompt=False EnableParameterPrompt=False
3)
No código fonte C# da página RelRelatorio.aspx utilize os dois métodos informados no exemplo abaixo(ConfiguraCrystalReports e SetDBLogonForReport), depois no método page load chame o método ConfiguraCrystalReports.
Pronto o relatório já esta configurado.
// ==== Codigo fonte da pagina Aspx que chama o relatorio RPT ==== // configuração do Crystal reports using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using CrystalDecisions.CrystalReports.Engine; using CrystalDecisions.Shared; namespace AplicativoWeb.Relatorios { public partial class RelRelatorio : System.Web.UI.Page { // Load da pagina protected void Page_Load(object sender, EventArgs e) { ConfiguraCrystalReports(); } // configuração do Crystal reports private void ConfiguraCrystalReports() { ReportDocument rpt = new ReportDocument(); string reportPath = Server.MapPath(relatorio.rpt); rpt.Load(reportPath); ConnectionInfo myConnectionInfo = new ConnectionInfo(); myConnectionInfo.ServerName = servidor; // Utilize o nome do servidor ou IP myConnectionInfo.DatabaseName = Nome_Banco_de_Dados; myConnectionInfo.UserID = usuario; myConnectionInfo.Password = senha; SetDBLogonForReport(myConnectionInfo, rpt); csRelatorio.ReportSource = rpt; } // Conexao de logon do relatorio private void SetDBLogonForReport(ConnectionInfo connectionInfo, ReportDocument ArquivoReport) { Tables tables = ArquivoReport.Database.Tables; foreach (CrystalDecisions.CrystalReports.Engine.Table table in tables) { TableLogOnInfo tableLogonInfo = table.LogOnInfo; tableLogonInfo.ConnectionInfo = connectionInfo; table.ApplyLogOnInfo(tableLogonInfo); } } } }
Espero ter auxiliado aos demais usuários Asp.NET e C# na utilização de relatórios com o Crystal Reports.
Faustino Junior
Posts
28/08/2012
Mazuquieli Veras
An error has occurred while attempting to load the Crystal Reports runtime. Either the Crystal Reports registry key permissions are insufficient, or the Crystal Reports runtime is not installed correctly. Please install the appropriate Crystal Reports redistributable (CRRedist*.msi) containing the correct version of the Crystal Reports runtime (x86, x64, or Itanium) required. Please go to http://www.businessobjects.com/support for more information.
28/08/2012
Faustino Junior
É na sua máquina ou o erro esta dando quando você publicou os arquivos.
28/08/2012
Mazuquieli Veras
28/08/2012
Faustino Junior
O seu servidor deverá estar instalado com algumas atualizações.
Este aplicativo deverá ser instalado no servidor "ReportViewer.exe"
------
Procure no seu pc os arquivos c:\Windows\Assembly e veja as bibliotecas que começam com CrystalDecision.algumacoisa
Estas são as bibliotecas que vc precisa,
Entre no seu servidor e verifique quais estão instaladas no servidor
Faça a comparação e copie as dlls que faltam.
------
Depois coloque as dlls na pasta bin do seu projeto
Microsoft.ReportViewer.Common
Microsoft.ReportViewer.ProcessingObjectModel
Microsoft.ReportViewer.WebForms
28/08/2012
Mazuquieli Veras
--------------------------------
Olhei na minha pasta c:\Windows\Assembly vi que tem alguns arquivos q nao tem no meu bin no hostdime, tenho que localizar as dlls desses arquivos e colocar la?
--------------------------------
Ai tenho que colocar essas dells pasta bin do seu projeto do meu projeto na minha maquina ou na pasta bin no hostdime? E não localizei elas em minha maquina.
Microsoft.ReportViewer.Common
Microsoft.ReportViewer.ProcessingObjectModel
Microsoft.ReportViewer.WebForms
Minhas duvidas devem ser simples, mas como nunca usei o Crystal Report estou tendo essas dificuldades.
01/09/2012
Hugo
Sou desenvolvedor iniciante em .NET, e trabalho com as seguintes ferramentas:
Visual Studio 2010
Entity Framework 4.3.1
JQuery
SQL Server 2008
Razor
Asp.net
Linq
C#
Necessito aprender os seguintes itens:
criar relatórios em Crystal Reports e vincula-los na minha aplicação .NET
aprender a publicar minha aplicação em um host externo e também em uma intranet
Se algum colega tiver interesse, por favor, disponibilize um e-mail de contato para um possível orçamento.
Abraços
03/09/2012
Faustino Junior
1. É necessário que você adicione a referência das seguintes dlls no seu projeto antes de publicar:
Microsoft.ReportViewer.WebForms.dll e
Microsoft.ReportViewer.Common.dll
Estas dlls podem ser encontradas na pasta de istalação do VS.NET, exemplo: C:\Program Files\Microsoft Visual Studio 8\ReportViewer
2. Após ter realizado a adição das referências, publique seu site para a Locaweb.
3. Copie para a pasta BIN de seu site na Locaweb os seguintes arquivos da sua máquina:
Microsoft.ReportViewer.WebForms.dll ,
Microsoft.ReportViewer.Common.dll e
Microsoft.ReportViewer.ProcessingObjectModel.dll
OBS: a DLL Microsoft.ReportViewer.ProcessingObjectModel.dll somente será encrontrada na sua máquina pelo prompt (CMD), pois o Windows oculta armazena esse arquivo em um conceito diferente.
4. abra o cmd vá no diretório: C:\WINDOWS\assembly\GAC_MSIL\Microsoft.ReportViewer.ProcessingObjectModel
dentro desse diretório existe um diretório chamando: 8.0.0.0__b03f5f7f11d50a3a , após o a seqência 8.0.0.0__ os caracteres dessa pasta podem ser diferentes do que digitei, pois depende da versão instalada em sua máquina, em fim, entre no diretório e finalmente encontrará a dll.
5. Copie a dll Microsoft.ReportViewer.ProcessingObjectModel.dll usando o comando copy para uma pasta qualquer, somente assim você verá a dll pelo Windows Explorer. Agora é só copiar a dll para o diretório BIN do seu site e rodar os relatórios.
Clique aqui para fazer login e interagir na Comunidade :)