Falha no Logon - Crystal em VS2010 com Sql Server 2008
01/06/2011
0
Pessoal,desenvolvi um report em Crystal que utiliza uma view do SQl Server 2008. Estou usando o VS2010.
O relatório é apresentado mas quando efetua-se a paginação, pede o login do banco.
O Mesmo acontece ao tentar exportar o relatorio.
Alguem sabe como contornar essa situação?
Já implementei a seguinte rotina no webform onde está o view do Crystal:
public CrystalDecisions.Shared.TableLogOnInfos LogOnInfo { get; set; }
private void SetLogOnInfo(String userID, String password, String databaseName, String serverName, String tableName)
{
TableLogOnInfo logOnInfo = new TableLogOnInfo();
logOnInfo.ConnectionInfo.ServerName = serverName;
logOnInfo.ConnectionInfo.DatabaseName = databaseName;
logOnInfo.ConnectionInfo.UserID = userID;
logOnInfo.ConnectionInfo.Password = password;
logOnInfo.TableName = tableName;
TableLogOnInfos tableLogOnInfos = new TableLogOnInfos();
tableLogOnInfos.Add(logOnInfo);
ViewRpt.LogOnInfo = tableLogOnInfos;
}
O relatório é apresentado mas quando efetua-se a paginação, pede o login do banco.
O Mesmo acontece ao tentar exportar o relatorio.
Alguem sabe como contornar essa situação?
Já implementei a seguinte rotina no webform onde está o view do Crystal:
public CrystalDecisions.Shared.TableLogOnInfos LogOnInfo { get; set; }
private void SetLogOnInfo(String userID, String password, String databaseName, String serverName, String tableName)
{
TableLogOnInfo logOnInfo = new TableLogOnInfo();
logOnInfo.ConnectionInfo.ServerName = serverName;
logOnInfo.ConnectionInfo.DatabaseName = databaseName;
logOnInfo.ConnectionInfo.UserID = userID;
logOnInfo.ConnectionInfo.Password = password;
logOnInfo.TableName = tableName;
TableLogOnInfos tableLogOnInfos = new TableLogOnInfos();
tableLogOnInfos.Add(logOnInfo);
ViewRpt.LogOnInfo = tableLogOnInfos;
}
Joaquim Quintella
Curtir tópico
+ 0
Responder
Posts
10/06/2011
Marcio Silveira
Joaquim,
Costumo utilizar DataSet tipado, ou seja, trabalho desconectado do banco de dados, nunca tive problemas.Você podia tentar isso.
Costumo utilizar DataSet tipado, ou seja, trabalho desconectado do banco de dados, nunca tive problemas.Você podia tentar isso.
Responder
29/03/2012
Faustino Junior
ola.
Você pode utilizar o seguinte código abaixo no c# de uma página "aspx".
No meu exemplo eu criei o relatório.rpt e uma página relRelatorio.aspx, na página aspx basta inserir o componente reportviewer.
Para qualquer outra dúvida acesse o link abaixo.
http://faustino-jr.blogspot.com.br/2012/03/como-configurar-logon-e-utilizar-o.html
// 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);
}
}
Você pode utilizar o seguinte código abaixo no c# de uma página "aspx".
No meu exemplo eu criei o relatório.rpt e uma página relRelatorio.aspx, na página aspx basta inserir o componente reportviewer.
Para qualquer outra dúvida acesse o link abaixo.
http://faustino-jr.blogspot.com.br/2012/03/como-configurar-logon-e-utilizar-o.html
// 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);
}
}
Responder
Clique aqui para fazer login e interagir na Comunidade :)