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
App. WinForms / WPF .NET
Crystal Reports e MySql: Come fare?
domenica 31 maggio 2009 - 14.54
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Luka90
Profilo
| Junior Member
66
messaggi | Data Invio:
dom 31 mag 2009 - 14:54
Salve a tutti! Ho ancora una volta bisogno della vostra saCCenza
Devo fare un report (o credo, anche più di uno) però non so proprio da dove iniziare. Ho guardato anche sulla guida che fornisce Microsoft su Crystal Repost Basic appunto, la vesrione incorporata in Visual Studio 2008.
Ho messo un ReportViewer in una form e ho fatto CREA NUOVO REPORT CRYSTAL...
Alla richiesta DATI ho scelto tra ORIGINE DATI DISPONIBILI ---> ODBC (RDO) e EFFETTUARE NUOVO COLLEGAMENTO.
Ho provato a mettere la stringa di connessione, ma non mi funziona!
Esistono altri modi?
Questa è la creazione guidata, mi conviene farla da codice? C'è qualche guida a riguardo?
Magari sono tordo, anzi facile, quindi mi scuso da subito
Grazie mille a tutti!
Luca
Jeremy
Profilo
| Guru
1.527
messaggi | Data Invio:
dom 31 mag 2009 - 15:05
Ciao Luca.
Non esiste Crystal Report e MySql .... voglio dire:
CrystalReport si appoggia ad un Dataset dal quale preleva i dati per popolare i campi del report stesso.
Per creare un Crystal Report, quindi, devi pensare alla struttura del report a prescindere da quale sia l'origine dati.
Quindi:
-Crei un DataSet con le DataTable che ti servono in funzione delle tue esigenze.
-Crei un Crystal Report specificando l'origine dati(Il Dataset)
-Componi la struttura del Report posizionando i campi dove ti servono.
-Popoli il DataSet con la tecnica che preferisci
-Visualizzi il report.
Ad ogni modo, se hai problemi.....noi siamo qui.
Facci sapere..
ciao
freeteo
Profilo
| Guru
6.542
messaggi | Data Invio:
dom 31 mag 2009 - 22:24
Ciao Jeremy,
giusto per correttezza devo dirti che Crystal può si attaccarsi ad un dataset, ma non è "necessario" il Dataset, può attaccarsi a qualsiasi sorgente dati che supporta.
Cosa supporta lo capisci dalla finestra "esperto database" che si apre quando disegni un report, e da li puoi scegliere anche ODBC come ha fatto Luka90 ed andare a specificare quello che vuoi.
Che poi ci sia qualche incopatibilità dei tipi, potrebbe essere....quindi di solito io preferisco "OleDb" ma cmq potrebbe presentarsi l'errore anche in quel caso.
A parte questo, quello che dici tu è anche vero, ossia, puoi decidere che da codice .net classico (ado.net) tu vai a passare i dati al report caricandoli da dove vuoi, anche se il report l'hai disegnato puntando ad un database diverso, quindi se ti attacchi a MySql già nella tua applicazione, puoi pensare di passargli i dati tramite il metodo "SetDataSource()" senza far fare al report l'accesso da solo.
Cmq sia vi consiglio questo mio articoletto (e c'è disponibile un esempio da scaricare) che spiega come integrarlo in una WindowsForm e i vari metodi di aggancio al database:
http://www.dotnethell.it/articles/Crystal-Reports-Integration-Windows-Form.aspx
Ciao.
Matteo Raumer
[MVP Visual C#]
http://blogs.dotnethell.it/freeteo
Jeremy
Profilo
| Guru
1.527
messaggi | Data Invio:
dom 31 mag 2009 - 22:30
Ciao Matteo.
>Ciao Jeremy,
>giusto per correttezza devo dirti che Crystal può si attaccarsi
>ad un dataset, ma non è "necessario" il Dataset, può attaccarsi
>a qualsiasi sorgente dati che supporta.
>Cosa supporta lo capisci dalla finestra "esperto database" che
>si apre quando disegni un report, e da li puoi scegliere anche
>ODBC come ha fatto Luka90 ed andare a specificare quello che
>vuoi.
Questa mi sfuggiva(non lo sapevo)
>Cmq sia vi consiglio questo mio articoletto (e c'è disponibile
>un esempio da scaricare) che spiega come integrarlo in una WindowsForm
>e i vari metodi di aggancio al database:
>
http://www.dotnethell.it/articles/Crystal-Reports-Integration-Windows-Form.aspx
Lo leggerò con attenzione
Grazie Ciao
Luka90
Profilo
| Junior Member
66
messaggi | Data Invio:
mar 2 giu 2009 - 11:18
Grazie mille Freeteo!
Ho letto il documento che hai linkato e l'ho trovato molto interessante. Lo posso sfruttare meglio non appena però sarò riuscito a fare una connessione tramite ODBC al mio DB MySql! Ancora non son riuscito a inserire la corretta stringa di connessione, mi da sempre errore
.
Non è che sai illuminarmi?
Con access sarebbe tutto molto più facile, ma ahimè tutto il mio softwarino è basato su MySql.
Altrimenti mi toccherà sfruttare me classi che ho già creato per l'estrazione dei dati dal mio DB e passargli queste informazioni tramite codice... Sperando che sia abbastanza facile!
Luca
Cteniza
Profilo
| Guru
1.509
messaggi | Data Invio:
mar 2 giu 2009 - 11:36
per interfacciarti con mysql c'è il driver nativo, non devi utilizzare odbc
Per il report invece ti consiglio di seguire il suggerimento di appoggiarti ad un dataset.
Poi .. tu da programma apri la connessione, leggi i dati, alimenti il dataset e richiami crystal report.
Luka90
Profilo
| Junior Member
66
messaggi | Data Invio:
mar 2 giu 2009 - 11:44
Si insomma, mi consigli di andare via codice direttamente, senza passare dal wizard di Crystal (speravo di fare le cose facili io!).
Come ripeto, avendo già le classi che mi gestiscono le query al DB MySql tramite i suoi connectors, non dovrebbe essere tropo difficile riempire un dataset.
Quello che non so è:
con un dataset ho un insieme di tabelle riempite secondo delle query. Ma come imposto da quale tabella prendere i campi, secondo che parametri raggruppare ecc ecc? COn il wizard te li fa fare lui i collegamenti tra tabelle e ti fa specificare il tutto tramite un'interfaccia. Da codice non sò farlo.
Essendo proprio digiuno di reports ora ci sto smanettando un pò...
P.S: provando, ho messo in SetDataSource() una datatable, ma mi da erore dicendo che il report non ha tabelle. Cosa sbaglio?
Luca
freeteo
Profilo
| Guru
6.542
messaggi | Data Invio:
mar 2 giu 2009 - 13:01
>Si insomma, mi consigli di andare via codice direttamente, senza
>passare dal wizard di Crystal (speravo di fare le cose facili
>io!).
se riesci a fare una connessione a mysql via ODBC puoi creare il report puntando a quel database, e quindi disegnare quello che deve essere visualizzato direttamente puntando a quel database, e soprattutto da designer.
Se non riesci a fare la connessione corretta, guarda questo sito:
http://www.connectionstrings.com/
trovi tutto.
>che parametri raggruppare ecc ecc? COn il wizard te li fa fare
>lui i collegamenti tra tabelle e ti fa specificare il tutto tramite
>un'interfaccia. Da codice non sò farlo.
esatto, come ti dicevo devi farlo dal designer del report, non da codice...da codice puoi passargli i dati, ma i campi, le formule, i grafici etc...tutto quello che compone il report insomma, lo devi fare da designer.
>P.S: provando, ho messo in SetDataSource() una datatable, ma
>mi da erore dicendo che il report non ha tabelle. Cosa sbaglio?
si perchè non hai fatto il report a design time, e quindi quando con quel metodo gli passi i dati, lui si aspetta di "rimpiazzare" la tabella che hai agganciato nel report in fase di design con quella che gli passi, ma chiaramente deve essercene già una nel report
Ciao.
Matteo Raumer
[MVP Visual C#]
http://blogs.dotnethell.it/freeteo
Luka90
Profilo
| Junior Member
66
messaggi | Data Invio:
mar 2 giu 2009 - 13:57
Grazie mille, come sempre chiarissimo!
Fatto, finalmente ho capito dov'era l'inghippo. Avevo già provato tutte le stringhe di connessione ma mi mancava il driver istallato di ODBC MySql 5.1 dunque sono un pirla.
Adesso funziona!
Grazie a tutti! Davvero di cuore.
Luca
freeteo
Profilo
| Guru
6.542
messaggi | Data Invio:
mar 2 giu 2009 - 14:29
>Adesso funziona!
>Grazie a tutti! Davvero di cuore.
di niente grazie a te, alla prossima.
Ciao.
Matteo Raumer
[MVP Visual C#]
http://blogs.dotnethell.it/freeteo
Arsenico
Profilo
| Junior Member
70
messaggi | Data Invio:
mar 2 ott 2012 - 10:50
>si perchè non hai fatto il report a design time, e quindi quando
>con quel metodo gli passi i dati, lui si aspetta di "rimpiazzare"
>la tabella che hai agganciato nel report in fase di design con
>quella che gli passi, ma chiaramente deve essercene già una nel
>report
Riesumo questo vecchio post perchè anch'io ho lo stesso errore "Il report non ha tabelle" ma non ho capito come mettere il report in fase di design. Qualcuno è in grado di illuminarmi?
freeteo
Profilo
| Guru
6.542
messaggi | Data Invio:
mar 9 ott 2012 - 10:11
Ciao Arsenico,
se non ho capito male, tu hai bisogno di agganciare al report una tabella da un database in fase di design, quindi dentro a visual studio suppongo.
Ti basta aprire il report, mostrare la tab "Document Outline" che di fatto ti da la struttura del report, ed al nodo "database field", fare "tasto DX->esperto database".
A quel punto si apre un piccolo wizard che ti permette di associare al report una sorgente dati tra quelle che lui riesce a gestire.
Probabilmente non troverai MySql, ma non importa, puoi fare un database "fake" in access, e poi da codice a runtime gli passerai i dati letti da mysql, non ha importanza da dove/come provengono, ti basta che la struttura (quindi nomi dei campi, tipi, e soprattutto "ordine" di apparizione) siano le stesse...così lui costruisce il layout su un modello di dati, che poi gli passerai a runtime.
Ciao.
Matteo Raumer
[MCAD .net, MVP Visual C#]
http://blogs.dotnethell.it/freeteo
Arsenico
Profilo
| Junior Member
70
messaggi | Data Invio:
lun 15 ott 2012 - 08:27
Grazie!
freeteo
Profilo
| Guru
6.542
messaggi | Data Invio:
ven 26 ott 2012 - 20:58
>Grazie!
di nulla, ma hai risolto il tuo problema?
Se sì, accetta una risposta così chiudiamo il thread.
Grazie.
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 !