Inquiridor
Falta Valor databasename no Crystal Report somente no lado do cliente

Pergunta
-
Amigos
tenho um relatorio "DANFE" que abre normalmente na maoria dos clientes
porem em alguns o DATABASENAME de conexão vem em branco
apesar de funcionar na maioria dos clientes o codigo usado é este:
------------------------------
try
{
DOC = "Danfe.rpt";
ConnectionInfo crConnectionInfo;
Database crDatabase;
Tables crTables;
TableLogOnInfo crTableLogOnInfo;
crReportDocument = new ReportDocument();
crReportDocument.Load(DOC, OpenReportMethod.OpenReportByTempCopy);
crDatabase = crReportDocument.Database;
crTables = crDatabase.Tables;
crConnectionInfo = new ConnectionInfo();
crConnectionInfo.ServerName = "INSTANCIA";
crConnectionInfo.DatabaseName = "DBASENAME";
crConnectionInfo.UserID = "USER";
crConnectionInfo.Password = "PWord";
foreach (ReportDocument subRpt in crReportDocument.Subreports)
{
foreach (Table crTable in subRpt.Database.Tables)
{
crTable.LogOnInfo.ConnectionInfo.AllowCustomConnection = true;
TableLogOnInfo logInfo = crTable.LogOnInfo;
logInfo.ConnectionInfo = crConnectionInfo;
crTable.ApplyLogOnInfo(logInfo);
}
}
foreach (Table aTable in crTables)
{
crTableLogOnInfo = aTable.LogOnInfo;
crTableLogOnInfo.ConnectionInfo = crConnectionInfo;
aTable.ApplyLogOnInfo(crTableLogOnInfo);
}
crReportDocument.SetParameterValue("Chave", Chave_);
crystalReportViewer1.ReportSource = crReportDocument;
crystalReportViewer1.Refresh();
}
catch
{
}
------------------------------
não é permissão pois os dados são acessados pelo programa
Alguem tem uma ideia ou já passou por isto?
Todas as Respostas
-
-
Instalei para ver mas continua,
eu observei que alguns relatorios funcionam no mesmo cliente e outros não
se eu tentar modificar o relatorio ele tambem não detecta mais o databasename
estou muito confuso,
achei que seria banco mas não pode ser pois alguns relatorio funcionam
qqer reltorio que crio novo ele da este problema
alguns antigo ele roda
uso o crystal do vs2015
me ajudem por favor
- Editado EloisioCampos segunda-feira, 24 de outubro de 2016 20:01
-
Bom dia,
Tente criar um novo, use esse código para chamar o report:
ReportDocument cr = new ReportDocument(); TableLogOnInfos crtableLogoninfos = new TableLogOnInfos(); TableLogOnInfo crtableLogoninfo = new TableLogOnInfo(); ConnectionInfo crConnectionInfo = new ConnectionInfo(); Tables CrTables; pathReport = Application.StartupPath + @"\Reports\SeuRelatorio.rpt"; cr.Load(pathReport); crConnectionInfo.ServerName = //seu server crConnectionInfo.DatabaseName = //database crConnectionInfo.UserID = //usuario crConnectionInfo.Password = //senha CrTables = cr.Database.Tables; foreach (CrystalDecisions.CrystalReports.Engine.Table CrTable in CrTables) { crtableLogoninfo = CrTable.LogOnInfo; crtableLogoninfo.ConnectionInfo = crConnectionInfo; CrTable.ApplyLogOnInfo(crtableLogoninfo); } cr.SetDatabaseLogon(//seus dados conexao); //abrir o report frmRelatorio frmrel = new frmRelatorio(cr); frmrel.Show();
Geralmente não tenho problemas com esse código usando WinForms. Veja também o DataSource location dos que funcionam se é diferente dos reports que não está funcionando. Talvez atualizar funcione. Teste poste os resultados.
- Editado Daniel Brito br quarta-feira, 26 de outubro de 2016 11:03 Correção
- Sugerido como Resposta AndreAlvesLimaModerator quinta-feira, 27 de outubro de 2016 14:37
-
Daniel
Obrigado pela prontidão
Mas não funcionou
da o mesmo problema
como pode ver o banco vem em branco , a senha e a instancia está ok.
Eu peguei um relatório antigo Criado no VS2010 e o mesmo não da este problema
inclusive eu fiz alterações nele e tudo bem
mas se na hora de salvar eu converter para a nova versão da pau
ta ruim , pois tenho que simular todos os relatórios em uma maquina que da o problema para ver se vai rodar no cliente
continuo no escuro
Obrigado
- Editado EloisioCampos sexta-feira, 28 de outubro de 2016 12:50