Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
Crystal Reports e reportistica
Problema con Crystalviewer
martedì 02 gennaio 2007 - 12.41
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Carlik
Profilo
| Junior Member
158
messaggi | Data Invio:
mar 2 gen 2007 - 12:41
Salve a tutti,
Ho da poco cambiato le dll di crystal report del mio progetto,da 3.0 a 2.7(Cioè le mie dll stanno sotto C:\Programmi\File comuni\Business Objects\2.7\Managed invece che sotto C:\Programmi\File comuni\Business Objects\3.0\managed)
Adesso cerco di inserire un ReportViewer,e ricevo un errore a runtime nell'inizializzazione della form nella quale questo viewer è contenuto:
Impossibile trovare il metodo 'System.Drawing.Font CrystalDecisions.Shared.SharedUtils.GetSystemStatusFont(NonClientMetricsFontType)'.
Qualcuno ha mai avuto un problema del genere?
freeteo
Profilo
| Guru
6.542
messaggi | Data Invio:
mar 2 gen 2007 - 20:53
ciao,
come avrai capito anche tu, il problema sta che il runtime probabilmente che hai nella GAC non è settato correttamente.
Quando dici "...Ho da poco cambiato le dll di crystal report.." cosa intendi precisamente, hai disinstallato e reinstallato? o hai sovrascritto alcune librerie...
Controlla la GAC, e magari se puoi debuggare vedi anche la versione della libreria di runtime se è corretta.
Per capirci qualcosa in questi labirinti di "dll" o dovrei dire "dll hell" anche in .net
, un buon tool è questo:
http://www.microsoft.com/technet/sysinternals/FileAndDisk/Filemon.mspx
praticamente riesci a vedere a quale file accede la tua applicazione e quindi dovresti riuscire a capire se va a prendere un file sbagliato...
ciao.
Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo
Carlik
Profilo
| Junior Member
158
messaggi | Data Invio:
mer 3 gen 2007 - 12:49
ciao,
come avrai capito anche tu, il problema sta che il runtime probabilmente che hai nella GAC non è settato correttamente.
-->Non l'avevo capito,ma mi fido:-)
Quando dici "...Ho da poco cambiato le dll di crystal report.." cosa intendi precisamente, hai disinstallato e reinstallato? o hai sovrascritto alcune librerie...
--> In pratica CRXI mi fornisce 2 cartelle contenenti le stesse librerie:
C:\Programmi\File comuni\Business Objects\3.0\managed
e
C:\Programmi\File comuni\Business Objects\2.7\managed
Per cui non ho reinstallato niente(o forse una [la 2.7] è fornita dal framework 2.0 di Vb2005?)
Controlla la GAC, e magari se puoi debuggare vedi anche la versione della libreria di runtime se è corretta.
-->Come si fa il debug della gac?
Per capirci qualcosa in questi labirinti di "dll" o dovrei dire "dll hell" anche in .net , un buon tool è questo:
http://www.microsoft.com/technet/sysinternals/FileAndDisk/Filemon.mspx
praticamente riesci a vedere a quale file accede la tua applicazione e quindi dovresti riuscire a capire se va a prendere un file sbagliato...
-->Fatto:i file sono sempre quelli attesi(non dico giusti,ma attesi sì!)
ciao.
->>Ciao e grazie
freeteo
Profilo
| Guru
6.542
messaggi | Data Invio:
mer 3 gen 2007 - 20:21
>...
>--> In pratica CRXI mi fornisce 2 cartelle contenenti le stesse
>librerie:
non ne fornisce 2, probabilmente la 3.0 è quella di una versione successiva, che hai installato
>C:\Programmi\File comuni\Business Objects\2.7\managed
>Per cui non ho reinstallato niente(o forse una [la 2.7] è fornita
>dal framework 2.0 di Vb2005?)
Si la da il framework 2.0, probabilmente l'altra dir ce l'hai peche' hai isntallato anche la XI (magari la versione 30 giorni?)
scusami ma non ho capito cosa hai fatto allora, quando fai programmi in .net 2005 puoi usare 2 strade per aggiungerci il supporto a Crystal:
- pacchetto di installazione
- prerequisiti
per distribuire un'applicazione ci sono queste 2 strade, ma tu se non ho capito bene hai problemi non di distribuzione, ma proprio di funzionamento del programma nel tuo pc.
Se hai cambiato le librerie aggiungendo i componenti nella toolbox, controlla anche che nei riferimenti del progetto ci siano le stesse lib, che non sia quello il problema.
O che quelle librerie che ti trovi non siano effettivamente state installate correttamente, cosi' magari visual studio le linka dentro e ti visualizza il viewer, ma poi quando lo elabora a runtime si aspetta altre librerie che in realta' tu non hai..
>Controlla la GAC, e magari se puoi debuggare vedi anche la versione
>della libreria di runtime se è corretta.
>
>-->Come si fa il debug della gac?
non si puo' debiuggare la gac, erano 2 cose distinte:
- nella GAC vedi le versioni installate, quando visualizzi gli assembly presenti...
- nel designer vedi le proprieta' dei controlli che hai aggiunto e anche li vedi le versioni
>-->Fatto:i file sono sempre quelli attesi(non dico giusti,ma
>attesi sì!)
non ho capito, per me rimane sicuramente un problema di installazione sporca o incompleta, perche' un assembly che ha una versione tipicamente (anche se non sempre) vanno a cercare altri assembly della stessa versione, perche' serve proprio ad avere controllo sulle evoluzioni di una libreria.
ciao.
Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo
Carlik
Profilo
| Junior Member
158
messaggi | Data Invio:
gio 4 gen 2007 - 09:44
>...
>--> In pratica CRXI mi fornisce 2 cartelle contenenti le stesse
>librerie:
non ne fornisce 2, probabilmente la 3.0 è quella di una versione successiva, che hai installato
--OK giustissimo
>C:\Programmi\File comuni\Business Objects\2.7\managed
>Per cui non ho reinstallato niente(o forse una [la 2.7] è fornita
>dal framework 2.0 di Vb2005?)
Si la da il framework 2.0, probabilmente l'altra dir ce l'hai peche' hai isntallato anche la XI (magari la versione 30 giorni?)
scusami ma non ho capito cosa hai fatto allora, quando fai programmi in .net 2005 puoi usare 2 strade per aggiungerci il supporto a Crystal:
- pacchetto di installazione
- prerequisiti
per distribuire un'applicazione ci sono queste 2 strade, ma tu se non ho capito bene hai problemi non di distribuzione, ma proprio di funzionamento del programma nel tuo pc.
Se hai cambiato le librerie aggiungendo i componenti nella toolbox, controlla anche che nei riferimenti del progetto ci siano le stesse lib, che non sia quello il problema.
O che quelle librerie che ti trovi non siano effettivamente state installate correttamente, cosi' magari visual studio le linka dentro e ti visualizza il viewer, ma poi quando lo elabora a runtime si aspetta altre librerie che in realta' tu non hai..
--Si, ho problemi nella mia applicazione,che volevo risolvere così:utilizzo la versione delle librerie installate col framework,così ho la massima compatibilità.
Il problema ora nasce in fase di impostazione dei parametri:
Ecco come agisco:
For i As Integer = 0 To UBound(m_mxParametriFields)
m_reportDocument.SetParameterValue(m_mxParametriFields(i), CStr(IfNull(m_mxParametriValues(i), "")))
Next
infine stampo così
'Bisogna settare la stampante giusta.
m_Printer = New Printing.PrinterSettings()
m_Printer.PrinterName = m_strNomeStampanti(s)
m_reportDocument.PrintOptions.PrinterName = m_Printer.PrinterName
m_reportDocument.PrintToPrinter(1, False, 0, 0)
m_Printer = Nothing
durante la PrintToPrinter nasce l'errore :
Errore nel file C:\DOCUME~1\CARLO~1.UNI\IMPOST~1\Temp\Reportfile{F6A69166-A4CD-41D4-924B-AC408388EDBB}.rpt:
Impossibile collegarsi: accesso ai parametri non corretto.
So ke è un problema noioso,ma aiutami,perche non ci dormo la notte!!
freeteo
Profilo
| Guru
6.542
messaggi | Data Invio:
ven 5 gen 2007 - 00:16
>--Si, ho problemi nella mia applicazione,che volevo risolvere
>così:utilizzo la versione delle librerie installate col framework,così
>ho la massima compatibilità.
guarda che quelle che tiservono sono quelle della versione di visual studio, la 3.0 non sono quelle del framework 3.0, probabilmente sono quelle di Crystal XI, ma non centra con la versione del framework
>durante la PrintToPrinter nasce l'errore :
>
>Errore nel file C:\DOCUME~1\CARLO~1.UNI\IMPOST~1\Temp\Reportfile{F6A69166-A4CD-41D4-924B-AC408388EDBB}.rpt:
>Impossibile collegarsi: accesso ai parametri non corretto.
questo errore mi da l'idea che sia qualcosa relativo all'accesso al database, che non hai specificato i parametri di connessione, o cmq non gli hai settato i dati con il metodo "SetDataSource()" dell'oggetto reportDocument.
Hai creato il report collegandolo ad un database? se si controlla quanto mostrato qui:
http://www.dotnethell.it/forum/messages.aspx?ThreadID=8681
in particolare la mia risposta dove dico "...hai 2 strade..." etc
ciao.
Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo
Carlik
Profilo
| Junior Member
158
messaggi | Data Invio:
ven 5 gen 2007 - 10:48
questo errore mi da l'idea che sia qualcosa relativo all'accesso al database, che non hai specificato i parametri di connessione, o cmq non gli hai settato i dati con il metodo "SetDataSource()" dell'oggetto reportDocument.
Hai creato il report collegandolo ad un database? se si controlla quanto mostrato qui:
http://www.dotnethell.it/forum/messages.aspx?ThreadID=8681
in particolare la mia risposta dove dico "...hai 2 strade..." etc
ciao.
->Hai centrato il problema,adesso l'eccezione restituita è quella relativa all'accesso al DB..:
CrystalDecisions.CrystalReports.Engine.LogOnException è stata individuata
Message="Accesso al database non riuscito."
Source="CrystalDecisions.ReportAppServer.DataSetConversion"
StackTrace:
in CrystalDecisions.ReportAppServer.ConvertDotNetToErom.ThrowDotNetException(Exception e)
in CrystalDecisions.ReportSource.EromReportSourceBase.HandleException(Exception exception)
in CrystalDecisions.ReportSource.EromReportSourceBase.GetLastPageNumber(ReportPageRequestContext reqContext)
in CrystalDecisions.CrystalReports.Engine.FormatEngine.PrintToPrinter(Int32 nCopies, Boolean collated, Int32 startPageN, Int32 endPageN)
in CrystalDecisions.CrystalReports.Engine.ReportDocument.PrintToPrinter(Int32 nCopies, Boolean collated, Int32 startPageN, Int32 endPageN)
in ServytoPos.ClsPrintReport.Stampa(Boolean anteprima, Int32 numCopie) in C:\Documents and Settings\Carlo.UNISOFT\Documenti\Visual Studio 2005\Projects\ServytoPos\ServytoPos\Classi\clsPrintReport.vb:riga 303
Ma io setto il datasource!!
m_reportDocument.SetDataSource(m_dsDataSource)
Inoltre con un'altra versione delle librerie(la famosa 3.0 :-)) lo stesso codice stampa tranquillamente..Solo che non posso più utilizzarla!!
Carlik
Profilo
| Junior Member
158
messaggi | Data Invio:
ven 5 gen 2007 - 15:47
Ok sono riuscito a fare tutto:
Le stampe mi funzionano,sia semplici che con i sotto report.
Il Viewer funge anch'esso,e il bello è che il tutto non dipendeva da me,ma da CRXI
Infatti il VB2005 funziona bene solo con CRXIR2
(a saperlo prima evitavo una settimana di nervi)
freeteo
Profilo
| Guru
6.542
messaggi | Data Invio:
sab 6 gen 2007 - 00:18
ok bene a sapersi, anzi grazie di averlo segnalato, sinceramente non lo sapevo...programmo in c# e non ho mai avuto problemi fortunatamente..
ciao.
Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo
Torna su
Stanze Forum
Elenco Threads
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 !