1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

CrystalReports em c#

Discussão em 'Programação' iniciada por FilipeSilva, 7 de Agosto de 2009. (Respostas: 4; Visualizações: 1979)

  1. Boas,

    Estou a desenvolver uma aplicação de gestão em C# e tenho num form com um ReportViewer para mostrar o report pretendido.

    Mas tou com um ligeiro problema, o meu c# que é VisualStudioExpressEdition2005 C# não tem as bibliotecas do Crystal. Logo não reconhece este código (ReportDocument):

    ReportDocument myreport;
    myreport = new ReportDocument();
    myreport.Load("C:\\..\\..\\..\\teste.rpt");
    crystalReportViewer1.ReportSource = myreport;

    Já exprimentei adicionar as bibliotecas:
    • crystaldecisions.crystalreports.engine.dll
    • crystaldecisions.shared.dll
    Quando adiciono estas bibliotecas reconhece o ReportDocument mas começa-me a rebentar, quando compilo.

    Gostaria de saber como faço para o c# me reconhecer o ReportDocument, pois penso que seja a unica maneira de chamar um Report para um ReportViewer.

    Agredecia uma pequena ajuda.
    Obrigado e cumprimentos
     
  2. Granadafeup

    Granadafeup Power Member

    Tens o CR instalado? Se sim essas dlls que importaste são da mesma versão do instalado?

    Se estiveres a usar a framework .Net 2.0 e o Crystal Report 11 vais ter alguns problemas pois teem algumas incompatibilidades. para a framework 2.0 é preciso usar o Crystal Report 11.5 (tb se chama CR XI Release 2 )
     
  3. Sim tenho CRXI instalado, não sei se estas dll são desta versão, pois estive a pesquisar muito no goolge e os códigos que encontro todos utilizam estas dll's.

    E a ultima framework instalada é .net 3.1.

    Pois a unica coisa que encontrei foi um setup para adicionar o controlo CrystalViewer ao VisualStudio2005 aparecendo este na toolbox.

    Nao sei se existe algum patch que se instale e ele adicione ao VisualStudio as bibliotecas do Crystal?

    Pois na minha aplicação o que eu preciso é chamar o report e passar os parametros. Para depois vizualiza o report no ReportViewer.
     
  4. alfinete

    alfinete Power Member

    antes de tudo vai ao teu projecto e adiciona nas references do mesmo as bibliotecas que referiste

    depois é que as chamas com o uses no teu code c#


    ja tenstaste

    Código:
    [COLOR=white][COLOR=#2b91af][FONT=Courier New]
    ReportDocument[/FONT][/COLOR][FONT=Courier New] myreport;[/FONT][/COLOR]
    try 
    {
    
    [FONT=Courier New][COLOR=white]myreport = [COLOR=blue]new[/COLOR] [COLOR=#2b91af]ReportDocument[/COLOR]();[/COLOR][/FONT]
    [FONT=Courier New][COLOR=white]myreport.Load([COLOR=#a31515]"C:\\..\\..\\..\\teste.rpt"[/COLOR]);[/COLOR][/FONT]
    [FONT=Courier New][COLOR=white]crystalReportViewer1.ReportSource = myreport;[/COLOR][/FONT]
    }
    catch(Exception ex)
    {
    string err =  ex.message ;
    }
    
    
    fazes um breakpoint e vez qual o erro que ele dá

    acho que devra estar a rebentar no caminho, quando faz o load


    mas acho que será assim

    Código:
    [COLOR=white][COLOR=#2b91af][FONT=Courier New]ReportDocument[/FONT][/COLOR][FONT=Courier New] myreport;[/FONT][/COLOR]
    try 
    {
    
     [FONT=Courier New][COLOR=white]myreport = [COLOR=blue]new[/COLOR] [COLOR=#2b91af]ReportDocument[/COLOR]();[/COLOR][/FONT]
     [FONT=Courier New][COLOR=white]myreport.Load([/COLOR][/FONT]@[B][COLOR=DarkRed]"C:\nomepasta\nomepasta\rptalunos.rpt"[/COLOR][/B][FONT=Courier New][COLOR=white]);[/COLOR][/FONT]
     [FONT=Courier New][COLOR=white]crystalReportViewer1.ReportSource = myreport;[/COLOR][/FONT]
    }
    catch(Exception ex)
    {
    string err =  ex.message ;
    }
    
    acho que assim ja deverá dar


    habitua-te a fazer sempre try catch pois ele passa sempre no try caso de um erro vai ao catch e te diz qual o erro que esta a dar

    torna-se depois mais facil resolve-lo
     
    Última edição: 9 de Agosto de 2009
  5. alfinete

    alfinete Power Member

    podes utilizar um directorio generico desde que o ponhas na pasta bin/debug do teu projecto

    Código:
    private string reppath = Application.StartupPath    + @"\rptxpto.rpt";   
    assim sescusas de estar a por sempre o caminho a mão que isso depois quando muda de maquina

    tens de estar a alterar os caminhos
     

Partilhar esta Página