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 Report e MySQL
lunedì 14 marzo 2005 - 16.56
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
AntonioM
Profilo
| Junior Member
72
messaggi | Data Invio:
lun 14 mar 2005 - 16:56
Salve a tutti,
vorrei sapere in che modo è possibile creare un report con CR che abbia come fonte un DB MySQL visto che provando le diverse alternative proposte da vb.net (vedi immagine allegata) non ci sono ancora riuscito...
Grazie a tutti in anticipo.
Antonio
trinity
Profilo
| Guru
3.465
messaggi | Data Invio:
mar 15 mar 2005 - 11:41
puoi tranquillamente farlo però come provider per la connessione a crystal report o utilizzi odbcnet oppure il provider mysql per net che si può scaricare a questo link:
http://dev.mysql.com/downloads/connector/net/1.0.html
però se utilizz quest'ultimo dovrai utlizzare i dataset per poter far vedere le tabelle del tuo database a crystal..
Ciao
Fabio
AntonioM
Profilo
| Junior Member
72
messaggi | Data Invio:
mar 15 mar 2005 - 22:02
Ciao fabio,
grazie per il consiglio, vorrei optare per la seconda possibilità cioè quella di usare un data provider, ne sto usando già uno "MySQLDriverCS", quello che non sto riuscendo a capire è come dopo aver creato il dataset, come fare per visualizzare i dati sul report? Nno potresti farmi un esempio?
Grazie ancora!
Antonio
trinity
Profilo
| Guru
3.465
messaggi | Data Invio:
mer 16 mar 2005 - 09:32
Da codice non è possibile far vedere le tabelle a crystal report visto che noi utilizziamo un provider che non rientra nell'opzioni di .net, per questo motivo dobbiamo creare una interfaccia virtuale che permetta a crystal report net di vedere le tabelle che servono...a questo punto te devi creare un file di tipo dataset1.xsd, lo aggiungi alla windowsapplications e facendo il tasto di destra del mouse sul foglio di lavoro dovrai aggiungere un nuovo element....in pratica ti permette di costruire in maniera visuale le tabelle in un dataset e questo verrà poi successivamente riempito di dati tramite codice e fatto vedere a crystal repoprt facendo la classica procedura: aggiungi/rimuovi database----dati del progetto----Datasets ADO.NET e quin troverai il dataset creato....
quando crei le tabelle nel file xsd, ti consiglio di inserire come tipo campi sempre String e integer nel caso di valori.
Ciao
Fabio
AntonioM
Profilo
| Junior Member
72
messaggi | Data Invio:
mer 16 mar 2005 - 11:44
Grazie mille Fabio,
ho seguito passo passo quanto mi hai descritto e va tutto ok, ma non sto riuscendo a visualizzare il report. Probabilmente sbaglio nel riempire il dataset creato. Potresti aggiungermi un pezzo di codice per spiegarmi come riempire il dataset?
Grazie 1000!
Antonio
trinity
Profilo
| Guru
3.465
messaggi | Data Invio:
mer 16 mar 2005 - 17:54
sei però riuscito a far vedere in programmazione le tabelle del dataset a crystal report?
AntonioM
Profilo
| Junior Member
72
messaggi | Data Invio:
mer 16 mar 2005 - 20:55
si ci sono riuscito, ho disposto anche i campi sul report, ma non riesco a riempire il Dataset che ho creato...
trinity
Profilo
| Guru
3.465
messaggi | Data Invio:
gio 17 mar 2005 - 10:04
Allora fai in questo modo, tieni presente che l'esempio che ti farò vedere prende le tabelle che hai creato nel dataset e le riempe....
dichiari una variabile di tipo dataset:
Dim ds As DataSet = New DataSet
ds.Tables.Add(mytable)
poi riempi la tabella del dataset, tieni però presente che il file xsd serve a livello visivo per collegare le tabelle su crystal report ma in programmazione devi crearti passo passo la tabella del dataset con i vari campi, in questo mdodo:
REM tabella prova
Public Function prova() As DataTable
Dim mytable As DataTable = New DataTable("prova")
Dim mycolumn As DataColumn = New DataColumn
mycolumn.DataType = System.Type.GetType("System.String")
mycolumn.ColumnName = "progressivo"
mytable.Columns.Add(mycolumn)
mycolumn = New DataColumn
mycolumn.DataType = System.Type.GetType("System.String")
mycolumn.ColumnName = "nome"
mytable.Columns.Add(mycolumn)
mycolumn = New DataColumn
mycolumn.DataType = System.Type.GetType("System.String")
mycolumn.ColumnName = "cognome"
mytable.Columns.Add(mycolumn)
mycolumn = New DataColumn
mycolumn.DataType = System.Type.GetType("System.Int32")
mycolumn.ColumnName = "eta"
mytable.Columns.Add(mycolumn)
prova= mytable
End Function
creata la tabella procedi in questo modo ossia riempire i campi con i dati:
sql = "SELECT * FROM cliebte WHERE codcliente='" & Me.Label1.Text & "'"
cmd.Connection = db
cmd.CommandText = sql
dr = cmd.ExecuteReader
mytable = prova()
While dr.Read
myrow = mytable.NewRow()
myrow("progressivo") = dr("codcliente")
myrow("nome") = dr("nomecliente")
myrow("cognome") = dr("cognomecliente")
myrow("eta") = dr("etacliente")
mytable.Rows.Add(myrow)
End While
dr.Close()
ds.Tables.Add(mytable)
Dim prova_stampa As New anagarfica(nome file report)
prova_stampa.SetDataSource(ds)
Me.CrystalReportViewer1.ReportSource = prova_stampa
ciao
fabio
AntonioM
Profilo
| Junior Member
72
messaggi | Data Invio:
gio 17 mar 2005 - 18:33
Ciao fabio,
potresti spiegarmi cos'è quel "dr" che si trova infondo al codice che hai postato? Scusa se sto abusando della tua gentilezza. Grazie 1000 soprattutto per la pazienza...
Antonio
trinity
Profilo
| Guru
3.465
messaggi | Data Invio:
gio 17 mar 2005 - 19:03
Non ti preoccupare e scusami te che non ti ho spiegato bene, sia il dr che il cmd sono delle variabili che dichiaro per l'Sqldatareader (dr) e l'Sqlcommand (cmd)
Ciao
Fabio
AntonioM
Profilo
| Junior Member
72
messaggi | Data Invio:
ven 18 mar 2005 - 10:17
e "db" cos'è? Ho provato a dichiararlo come SqlConnection ma mi da errore! Sicuramente ho sbagliato...
trinity
Profilo
| Guru
3.465
messaggi | Data Invio:
ven 18 mar 2005 - 10:28
No è giusto è la varibile che identifica il database, fai così:
Imports System.Data.Sqlclient
Dim db As New SqlConnection()
Dim cmd As New SqlCommand()
Dim dr As SqlDataReader()
se li metti in un modulo e te lo consiglio, dichiarali come Public così li potrai utilizzare in tutto il progetto:
Public db As New SqlConnection()
Public cmd As New SqlCommand()
Public dr As SqlDataReader()
Ciao
Fabio
AntonioM
Profilo
| Junior Member
72
messaggi | Data Invio:
ven 18 mar 2005 - 11:12
Ho risolto!!! Finalmente, l'errore era dovuto al provider "MySQLDriverCS", l'ho sostituito con quello di MySQL "ufficiale" ed ho risolto... cmq adesso do un'occhiata a quanto mi hai scritto nell'ultimo post. Ti faro' sapere, grazie 1000!!!!
Antonio
trinity
Profilo
| Guru
3.465
messaggi | Data Invio:
ven 18 mar 2005 - 11:44
Di nulla, ciao e buon lavoro
Fabio
AntonioM
Profilo
| Junior Member
72
messaggi | Data Invio:
lun 21 mar 2005 - 10:34
Ciao Fabio
scusa se ti disturbo ancora, ho fatto un po di esercizi con le query per crystal report e tutto è andato bene. Ora non riesco a fare una cosa banale, cioè insere sul report una label e gestirla tramite codice, cioè da codice deve dire io quale sarà il contenuto della label...
Spero tu possa aiutarmi
Grazie ancora
Antonio
trinity
Profilo
| Guru
3.465
messaggi | Data Invio:
lun 21 mar 2005 - 13:04
potresti sempre creare un campo virtuale come quelli che ti ho fatto vedere ed invece di indicargli un valore del database gli passi dei parametri che gli indichi te...
cmq. ti farò sapere se trovo altre procedure....
Ciao
Fabio
AntonioM
Profilo
| Junior Member
72
messaggi | Data Invio:
mar 22 mar 2005 - 22:02
perfetto fabio va bene la soluzione che mi hai proposto.
Grazie e buon lavoro.
Antonio
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 !