Errore nel LOAD del Report

venerdì 12 dicembre 2008 - 16.42

luxsor Profilo | Guru

Ciao,
non riesco a Caricare il Report dal disco con questo codice:

Dim ReportBollaDecoder As New BollaDecoder

ReportBollaDecoder.Load(Application.StartupPath & "\BollaDecoder.rpt")

l'errore che mi viene generato è:
"Impossibile trovare il report nelle risorse disponibili. Creare il progetto e riprovare."
Ma il file è presente nel percorso.

Perchè questo errore?

freeteo Profilo | Guru

Ciao,
verifica con un punto di interruzione, in debug, cosa vale "Application.StartupPath" e se ha o meno l'ultima barra finale del percorse del file, perchè se non riesce a caricarlo e ti da l'exception di "FileNotFound" il path che gli passi non è corretto.

Ciao.

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

luxsor Profilo | Guru

Ho già provato, infatti ho inserito anche il percorso completo.

Se invece imposto nelle proprietà del file del report
- operazione di compilazione = risorsa incorporata
- Copia nella directory di output = non copiare
non mi genera più l'errore, ma non mi funziona lo stesso.

Io voglio capire nel file del report, che connessione devo creare in modo che i campi che vado a sistemare nel report, vengono popolati con la query che ho inserito prima?

Perchè facendo Mostra Query SQL, mi compare una query totalmente diversa da quella che ho inserito io, invece a volte questa funzione non è abilitata.
Dov'è che sto sbagliando?

freeteo Profilo | Guru

allora il fatto di dire al report di copiarlo nella directory di output invece di compilarlo come risorsa del progetto stesso, è una scelta che io faccio praticamente sempre. Poi da codice me lo carico e gli passo i parametri di connessione nuovi, o cmq i dati completi.

Quest'ultimo caso, è utile nel momento in cui via codice devo fare delle operazioni (tipicamente filtri vari) prima di visualizzarli.

Il fatto di caricarlo con un path dal disco (tipicamente relativo alla tua applicazione) ti torna comodo anche se decidessi in futuro di gestire delle personalizzazioni (o anche gli aggiornamenti stessi) del report per qualche cliente, dove ti basta andare a sovrascrivere il file rpt e basta, altrimenti dovresti pensare a ricompilare.

Ad ogni modo, guardati questo articolo:
http://www.dotnethell.it/articles/Crystal-Reports-Integration-Windows-Form.aspx
ci sono vari esempi su come passare i dati, il tuo caso, se vuoi cambiare solo i parametri di connessione è quello che usa le "LogonInfo" appunto i parametri di connessione.

Ciao.

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

luxsor Profilo | Guru

Il consiglio tuo è giustissimo, ma se provo a caricare io tramite la proprietà LOAD nel report, mi genera il seguente errore: "Impossibile trovare il report nelle risorse disponibili. Creare il progetto e riprovare."

Ho copiato il file di report in C:\filedelreport.rpt l'errore è lo stesso.

Il link che mi hai consigliato è in C#, conosci qualcosa in vb.net?

freeteo Profilo | Guru

ciao,
prova a selezionare il report nel solution explorer di visual studio, nelle proprieta di quel file, prova a mettere "build action=None" e "Copy to Output=Always".

Per l'esempio che ti ho segnalato, per passare da C# a VB.net, prova ad usare questo tool, ti può aiutare molto:
http://www.carlosag.net/Tools/CodeTranslator/

Ciao.

Matteo Raumer
[MVP Visual C#]
http://blogs.dotnethell.it/freeteo
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-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5