Falha no Logon - Crystal em VS2010 com Sql Server 2008
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
Curtidas 0
Respostas
Marcio Silveira
01/06/2011
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.
GOSTEI 0
Faustino Junior
01/06/2011
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);
}
}
GOSTEI 0