none
Relatório não abre nos terminais (Utilizo Crystal Report) RRS feed

  • Pergunta

  • Tenho uma aplicação em WINFORM e nela tenho um relatório que funciona perfeitamente no servidor, porém não abre no terminal. No começo dava um erro daí reinstalei a runtime dele com a versão de 32 bits ao invés da 64, porém agora não da erro mas também não abre o relatório. As vezes ele começa abrir e fecha. Preciso muito resolver isto se alguém puder me ajudar.

    Apenas no terminal da este erro

    Código do relatório

    //No load após carregar o dataset chama este método
    ExecutarReport(rpt, dstHospedagem);
    
            public void ExecutarReport(ReportDocument cryRpt, DataSet dstReport)
            {
    TableLogOnInfos crtableLogoninfos = new TableLogOnInfos();
                TableLogOnInfo crtableLogoninfo = new TableLogOnInfo();
                ConnectionInfo crConnectionInfo = new ConnectionInfo();
                string strPathReport = string.Empty;
                Tables CrTables;
    
                try
                {
                    if (LConexao.Conexao != null)
                    {
                        crConnectionInfo.ServerName = LConexao.Servidor;
                        crConnectionInfo.DatabaseName = LConexao.Banco;
                        crConnectionInfo.UserID = LConexao.Usuario;
                        crConnectionInfo.Password = LConexao.Senha;
    
                        CrTables = cryRpt.Database.Tables;
    
                        foreach (CrystalDecisions.CrystalReports.Engine.Table CrTable in CrTables)
                        {
                            crtableLogoninfo = CrTable.LogOnInfo;
                            crtableLogoninfo.ConnectionInfo = crConnectionInfo;
                            CrTable.ApplyLogOnInfo(crtableLogoninfo);
                        }
    
                        strPathReport = "C:\\SysShop\\Hotel\\Hotel\\Report" + @"\";
                        cryRpt.FileName = strPathReport + "rptCheckout.rpt";
    
                        cryRpt.SetDataSource(dstReport);
                        //// cryRpt.SetDatabaseLogon(LConexao.Usuario, LConexao.Senha, LConexao.Servidor, LConexao.Banco);
                       
                        /*desmarcado para não abrir  o rpt*/
                        crystalReportViewer1.ReportSource = cryRpt;
                        crystalReportViewer1.Refresh();
                        this.WindowState = FormWindowState.Maximized;
                    }
                }
                catch (Exception ex)
                {
                    this.Dispose();
                }
    }

    quinta-feira, 17 de dezembro de 2015 18:20

Respostas

  • Eduardo, aqui na empresa utilizo o crystal report, coloco na pasta do servidor, que todos os usuários tem acesso, então o caminho é sempre o mesmo.
    • Marcado como Resposta Eduardo Michetti sexta-feira, 18 de dezembro de 2015 14:22
    sexta-feira, 18 de dezembro de 2015 13:56

Todas as Respostas

  • Mano, se não me engano, você precisa instalar o Redistribulate Pack do Crystal nas máquinas em que estiver seu sistema cada.

    No site do desenvolvedor você consegue esse pack, que são as dlls e todas as runtimes que o componente do Crystal precisa para gerar a renderização do relatório.

    • Sugerido como Resposta Marcos SJ sexta-feira, 18 de dezembro de 2015 11:36
    sexta-feira, 18 de dezembro de 2015 10:46
  • Bom dia,

    Nesse Link tem todos os downloads, verifica se você instalou o correto.

    Espero que ajude.

    • Sugerido como Resposta Marcos SJ sexta-feira, 18 de dezembro de 2015 11:36
    sexta-feira, 18 de dezembro de 2015 11:00
  • Vinicius Lima - Programmer  a Redistribulate Pack que vc se refere é a runtime, já esta instalada. Vlw

    marianac_costa Obrigado pela ajuda novamente.

    Seguinte, consegui resolver o problema, como não tem jeito de debugar no terminal (pelo menos não sei como), fui colocando messageBox em vários pontos até descobrir onde ocorria o erro, e o erro acontecia quando ia chamar o relatório

    strPathReport = "C:\\SysShop\\Hotel\\Hotel\\Report" + @"\";
                        cryRpt.FileName = strPathReport + "rptCheckout.rpt";

    Ele tentava buscar o caminho e não encontrava pq eu fazia apenas um atalho do sistema no terminal, ao invés de copiar a pasta inteira. Copiando a pasta inteira deu certo. Alguém sabe se teria alguma outra forma de fazer com que este caminho fosse visto em qualquer terminal, independente de estar ou não no local? Como vcs fazer para acessar o sistema em um terminal?

    sexta-feira, 18 de dezembro de 2015 13:34
  • Eduardo, aqui na empresa utilizo o crystal report, coloco na pasta do servidor, que todos os usuários tem acesso, então o caminho é sempre o mesmo.
    • Marcado como Resposta Eduardo Michetti sexta-feira, 18 de dezembro de 2015 14:22
    sexta-feira, 18 de dezembro de 2015 13:56
  • Mais uma vez obrigado, eu compartilhava apenas a pasta debug dentro de bin, por isso acontecia o erro. Refiz o compartilhamento e agora deu certo. Obrigado. abs
    sexta-feira, 18 de dezembro de 2015 14:22