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
Crystal XI e VB 2005 - Accesso non riuscito
giovedì 02 dicembre 2010 - 16.54
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Elenco Tags
VB.NET
|
Windows XP
|
Visual Studio 2005
|
SQL Server 2005
|
SQL Server Express
|
Crystal Reports XI
pulce2010
Profilo
| Newbie
10
messaggi | Data Invio:
gio 2 dic 2010 - 16:54
Salve a tutti.
Ho un'applicazione fatta in vb net 2005 standard edition. Uso crystal report XI per la generazione di report.
Il database in oggetto è su sql server express edition 2005.
Da Vb net accedo e lavoro tranquillamente ai dati tramite autenticazione sql server con l'utente "sa".
Anche la progettazione dei report è fatta attraverso un dsn sql server con autenticazione sql con utente "sa".
Al momento del lancio della stampa mi esce il seguente errore:
"Accesso non riuscito: dettagli - codice fornitore database 18456".
Di seguito posto il codice relativo. Utilizzo una form che si chiama frmreport che viene richiamata e che contiene l'oggetto crystal viewer.
--------------------------------------------------------------------------
Dim Crxreport As New CRAXDRT.Report
Dim crxApplication As New CRAXDRT.Application
Dim i As Integer
Me.Cursor = Cursors.WaitCursor
Crxreport = crxApplication.OpenReport(RptPath() & "report.rpt")
frmReport.CrViewer1.ReportSource = Crxreport
frmReport.CrViewer1.ViewReport()
frmReport.Show()
--------------------------------------------------------------------------------------------------
Grazie mille in anticipo, Lorenzo.
16-12-2010
Ho risolto i problemi legati a questo aspetto. Sono da poco passato al vb net, la mia conoscenza si basa sul vb 6 e quindi sui controlli com, da qui derivavano i miei problemi.
Due sono gli aspetti da cambiare:
1)Non ha più senso usare la libreria CRAXDRT.dll, ma importare ed usare "CrystalDecisions.CrystalReports.Engine" e "CrystalDecisions.Shared".
2)Visto che uso un dsn utente per collegare i dati al report, sbagliavo nell'usare il driver di sql server. Quello corretto è il driver di sql server native client.
Posto il codice che uso per lanciare le stampe tramite un "button".
---------------------------------------------------------------------------------
Dim cryRpt As New CrystalDecisions.CrystalReports.Engine.ReportDocument
Dim crtableLogoninfos As New CrystalDecisions.Shared.TableLogOnInfos
Dim crtableLogoninfo As New CrystalDecisions.Shared.TableLogOnInfo
Dim crConnectionInfo As New CrystalDecisions.Shared.ConnectionInfo
Dim CrTables As CrystalDecisions.CrystalReports.Engine.Tables
Dim CrTable As CrystalDecisions.CrystalReports.Engine.Table
Me.Cursor = Cursors.WaitCursor
cryRpt.Load(RptPath() & "rpt.rpt")
crConnectionInfo.ServerName = "XXX" ' Questo è il nome del dsn utente
crConnectionInfo.DatabaseName = "YYYY"
crConnectionInfo.UserID = "aa"
crConnectionInfo.Password = "bbbbbb"
CrTables = cryRpt.Database.Tables
For Each CrTable In CrTables
crtableLogoninfo = CrTable.LogOnInfo
crtableLogoninfo.ConnectionInfo = crConnectionInfo
CrTable.ApplyLogOnInfo(crtableLogoninfo)
CrTable.Location = crConnectionInfo.DatabaseName & ".dbo." & CrTable.Location.Substring(CrTable.Location.LastIndexOf(".") + 1)
Next
frmReport.CrViewer1.ReportSource = cryRpt
frmReport.CrViewer1.Refresh()
frmReport.Show()
cryRpt.Dispose()
Me.Cursor = Cursors.Default
------------------------------------------------------------------------
Ciao a tutti, Lorenzo.
freeteo
Profilo
| Guru
6.542
messaggi | Data Invio:
dom 26 dic 2010 - 17:50
Ciao Lorenzo,
grazie anche per aver postato la soluzione, e concordo con te su quanto hai scritto.
Inoltre aggiungo che se hai bisogno di un esempio utile per come fare puoi dare un'occhiata a questo post:
http://www.dotnethell.it/articles/Crystal-Reports-Integration-Windows-Form.aspx
l'esempio mostra anche qualcosa di avanzato (cambio di un gruppo dinamicamente) ma cmq ti può tornare utile per capire come si possono passare dei dati ad un report.
ps: Se hai problemi con C# puoi usare questo convertitore:
http://www.carlosag.net/Tools/CodeTranslator/
Ciao.
Matteo Raumer
[MCAD .net, MVP Visual C#]
http://blogs.dotnethell.it/freeteo
pulce2010
Profilo
| Newbie
10
messaggi | Data Invio:
lun 27 dic 2010 - 11:04
Grazie Matteo.. molto interessante anche il link per la conversione tra i due linguaggi.
Ciao, Lorenzo.
freeteo
Profilo
| Guru
6.542
messaggi | Data Invio:
lun 27 dic 2010 - 12:51
>Grazie Matteo..
di nulla fiugurati siamo qui per questo
>molto interessante anche il link per la conversione
>tra i due linguaggi.
sì effettivamente può tornare molto comodo in parecchie situazioni, anche quando non trovi gli esempi che ti servono nel tuo linguaggio, e fai veramente un lampo a farteli convertire...
Ciao.
Matteo Raumer
[MCAD .net, MVP Visual C#]
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 !