CrystalReports em c#

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
 
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 )
 
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.
 
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:
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
 
Back
Topo