none
Falta Valor databasename no Crystal Report somente no lado do cliente RRS feed

  • 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?

    domingo, 23 de outubro de 2016 22:42

Todas as Respostas

  • Olá boa tarde,

     já verificou nos clientes que geram problema possui o driver do sql Client ? Ou é outro banco de dados...

    segunda-feira, 24 de outubro de 2016 18:03
  • 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
    segunda-feira, 24 de outubro de 2016 20:00
  • 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.



    quarta-feira, 26 de outubro de 2016 11:02
  •  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


    sexta-feira, 28 de outubro de 2016 12:49