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
AIUTOOOOOOOO!!!
mercoledì 18 gennaio 2006 - 00.44
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Giamp72
Profilo
| Junior Member
115
messaggi | Data Invio:
mer 18 gen 2006 - 00:44
ciao colleghi ho un problema grosso e purtroppo urgentissimo:
SITUAZIONE:
ho definito una connessione odbc di nome "DB"
ho creato un report con dei campi pescati dalla connessione ODBC suddetta
nel mio codice ho scritto:
Dim stReport As New CrystalReports.Engine.ReportDocument
Dim login As CrystalDecisions.Shared.TableLogOnInfo
stReport.Load("c:\modulo.rpt")
login = stReport.Database.Tables(0).LogOnInfo
login.ConnectionInfo.DatabaseName = "DB"
stReport.Database.Tables(0).ApplyLogOnInfo(login)
'anteprima è un oggetto di tipo crystalreportviewer..
Anteprima.RefreshReport()
Anteprima.ReportSource = stReport
Anteprima.ShowFirstPage()
fin qui tutto ok...
PROBLEMA:
non definisco più la connessione ODBC ma uso una connection string all'interno del mio sw.
sicchè se lancio la procedura riportata,dopo aver eliminato la connessione ODBC di nome "Db",
crystal report mi apre la maschera di definizione del collegamento al database e questo ovviamente non va bene..
la soluzione credo sia ristabilire la connessione al report indicando una StringConnection del tipo
"DRIVER={MySQL ODBC 3.51 Driver};DATABASE=myoDb;OPTION=3; SERVER=LocalHost;UID=root;PWD=giamp;"
mi sono accorto anche che se ho la connessione odbc definita, ed è la stessa usata per disegnare il report, crystal report se la va a prendere automaticamente!! senza che io gliela dia via codice (pquesto perchè nel file rpt si memorizza il nome della connessione....)
Purtroppo non ho il tempo materiale di starea leggermi 100 articoli sull'argomento.. perciò se qualcuno ha idea di come poter risolvere il casino mi scriva anche semplicemente un esempio...
anticipatament grazie!!
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
mer 18 gen 2006 - 10:34
>SITUAZIONE:
>ho definito una connessione odbc di nome "DB"
>ho creato un report con dei campi pescati dalla connessione ODBC
>suddetta
>nel mio codice ho scritto:
Ciao Giamp,
prima cosa, non nominare i Thread con titolo de tipo "Urgente!!", "Aiuto!!!" ecc.
In questo modo è più difficile che qualcuno venga a rispondere visto che il termine aiuto è generico e non fa intendere a chi legge la lista dei threads che problema hai da un titolo del genere.
>PROBLEMA:
>non definisco più la connessione ODBC ma uso una connection string
>all'interno del mio sw.
Riguardo il tuo problema per conto mio puoi procedere così. Visto che trattasi di MySQL, effettua la connessione, recupera i dati all'interno di un DataSet, lega il DataSet al Report e apri il Report.
Pasando al metodo SetDataSource del Report la tabel direttamente in questo modo:
>SITUAZIONE:
>ho definito una connessione odbc di nome "DB"
>ho creato un report con dei campi pescati dalla connessione ODBC
>suddetta
>nel mio codice ho scritto:
Ciao Giamp,
prima cosa, non nominare i Thread con titolo de tipo "Urgente!!", "Aiuto!!!" ecc.
In questo modo è più difficile che qualcuno venga a rispondere visto che il termine aiuto è generico e non fa intendere a chi legge la lista dei threads che problema hai da un titolo del genere.
>PROBLEMA:
>non definisco più la connessione ODBC ma uso una connection string
>all'interno del mio sw.
Riguardo il tuo problema per conto mio puoi procedere così. Visto che trattasi di MySQL, effettua la connessione, recupera i dati all'interno di un DataSet, lega il DataSet al Report e apri il Report.
Pasando al metodo SetDataSource del Report la tabel direttamente in questo modo:
SetDataSource(ds.Tables(0))
non ti farà più apparire la maschera di logon.
ciao
David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/
Giamp72
Profilo
| Junior Member
115
messaggi | Data Invio:
mer 18 gen 2006 - 13:41
Intanto grazie per l'aiuto, e per la prossima volta mi regolo diversamente, in merito del titolo del Problema: hai sicuramente ragione tu.
ho provato a fare come dici tu, e cioè:
Dim stReport As New CrystalReports.Engine.ReportDocument
stReport.Load("c:\modulo.rpt")
Dim conn As New Odbc.OdbcConnection(sConnessione)
conn.Open()
Dim ds As New DataSet
Dim adapter As New Odbc.OdbcDataAdapter
adapter.SelectCommand = New Odbc.OdbcCommand("select * from tabella", conn)
adapter.Fill(ds)
stReport.SetDataSource(ds.Tables(0))
.. ma il problema permane...
all'avvio del modulo solita maschera di logon..
inoltre se il mio report pescasse dati da più tabelle come dovrei fare??
Giamp72
Giamp72
Profilo
| Junior Member
115
messaggi | Data Invio:
mer 18 gen 2006 - 20:29
HO RISOLTO!!!
posto la soluzione perchè magari può essere utile ad altri..
Dim stReport As New CrystalReports.Engine.ReportDocument
stReport.Load(sPercorsoStampe & "\" & NomeModulo)
Dim conn As New Odbc.OdbcConnection(ConnectionString)
conn.Open()
Dim ii As Integer
Dim ds As New DataSet
For ii = 0 To stReport.Database.Tables.Count - 1
Dim dtb As New DataTable
Dim adapter As New Odbc.OdbcDataAdapter("select * from " & stReport.Database.Tables(ii).Name, conn)
adapter.Fill(dtb)
ds.Tables.Add(dtb)
stReport.Database.Tables(ii).SetDataSource(ds.Tables(ii))
Next
conn.Close()
in questo caso se il mio report usa più tabelle del database gli passo tutti i dati che gli servono...
NB: Nel mio caso le selezioni sui dati da stampare sono fatte direttamente sul report con dei filtri o utilizzando
variabili che il mio programma passa a CR.
Giamp72
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 !