Express 2005 e crystal

mercoledì 27 gennaio 2010 - 12.42

niczip Profilo | Newbie

Ciao a tutti,
ragazzi avrei bisogno di un vostro aiuto su un problema che riguarda crystal report in vb 2005 express.
Ho creato esternamente il report che ho aggiunto nel mio progetto.
ho poi creato un form in cui ho inserito un Crystal ActiveXreport viewer control (nell'express non trovo il reportviewercontrol che ho sempre visto nella toobar del 2003).
nel load della form in cui ho inserito il viewer ho scirtto questo codice:

Dim path As String
path = Application.StartupPath + "\REPORT PC.RPT"
Dim CR As New CrystalDecisions.CrystalReports.Engine.ReportDocument
CR.Load(path)
Try
caxrw.ReportSource = CR
Catch ex As CrystalDecisions.CrystalReports.Engine.EngineException
MsgBox(ex.Message)
End Try
crw1.Show()

in debug si ferma su "caxrw.ReportSource = CR " dicendomi "Il codice è stato chiamato in un'altra funzione.
Al termine della funzione, questa è la funzione che verrà eseguita" e dandomi un alert di invalidcastexception (cast specificato non valido".
aggiungo, ma non so se utile, che se lancio il report dallo stesso path indicato nel programma si apre senza prob.
grazie 1000

giovy87 Profilo | Newbie

ciao io so che non è possibile utilizzare crystal report con le versioni express di visual studio. Ciò dipende dalla mancanza dell'oggetto report viewer presente solo nelle versioni professional o superiori.
Per quanto riguarda il controllo da te usato non lo conosco e quindi non so se magari è una possibile scorciatoia per utilizzare crystal report anche sulla versione express.
Se cerchi nel forum esiste una classe che permette di fare delle stampe senza crystal report forse potrebbe fare a caso tuo.

niczip Profilo | Newbie

grazie 1000
provo a dare un'occhiata!!!

freeteo Profilo | Guru

Ciao niczip,
il problema è che con quell'oggetto "CR" stai usando il runtime della versione ".net" di Crystal (infatti hai tutto il namespace etc...) mentre il viewer come mi dicevi è appunto un OCX quindi ancora COM e non .net.

Io gli oggetti report in versione COM li ho usati solo in vb6 anni fa, quando sono passato a .net ho usato la versione "managed" (.net appunto) quindi ti posso provare a passare il codice vb6:
http://www.dotnethell.it/forum/messages.aspx?ThreadID=7942

come vedi viene usato un oggetto "CRAXDRT.Report", quindi della libreria CRAXDRT.dll che è COM e non quelli di .net, forse è quella la libreria che contiene l'oggetto corretto che si aspetta il viewer, e quindi quella che devi referenziare...

Ciao.

Matteo Raumer
[MCAD .net, MVP Visual C#]
http://blogs.dotnethell.it/freeteo

niczip Profilo | Newbie

grazie 1000 freeteo.

ci provo e ti faccio sapere!!
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5