Anche io ho una domanda su Crystal Report...

lunedì 04 ottobre 2004 - 10.51

H2MARON Profilo | Junior Member

Ciao Tutti...

Ho cercato in giro per il sito, ma non sono riuscito a trovare niente...quindi ve lo chiedo!
Come si stampa da crystal report con un database mysql...tente conto che io non ho ancora usato crystal report in .NET...

freeteo Profilo | Guru

ciao,
se riempi 1 dataset/datatable da codice e poi lo passi come sorgente dati di 1 report all'interno di dotnet problemi non ce ne sono.Ti devi preoccupare tu di riempire il dataset/datatable leggendo i dati da sorgente mysql.
La stessa cosa vale per le versioni per com (come per vb6) dove io utilizzavo il provider myoledb o myodbc e poi riempivo 1 recordset.
Quello che importa è che come sorgente ci sia diciamo 1 "strato aggiuntivo" che sia indipendente dal database.
Per usarlo a design time usa odb o oledb come dicevo prima, dovrebbe funzionare altrimenti progetti con fonte dataset e poi riempi il dataset

ciao

trinity Profilo | Guru

Praticamente se utilizzi l'odbc come connessione non ti consiglio di utulizzare il dataset per crystal report net legge direttamente database tramite odbc, io utilizzo molto mysql ed ora ho trovato un dataprovider creato proprio dalla ditta mysql, scritto in codice net, proprio per poter utilizzare vb net o c# con i database mysql, solo che crystal report net non legge di default questa connessione e quindi come dice giustamente Teo devi creati un dataset e riempirlo e successivamente farlo leggere come connessione al report.

di spiego qualche passo:

1) devi inserire nel progetto un file dataset del tipo xsd Es:Dataset1.xsd

2) in questo file ti devi construire la tabelle o le tabelle che vuoi far visualizzare nel report

3) una volta fatto ciò devi scrivere questo codice per poter riempire il dataset:

Dim ds As New DataSet
Dim da As New MySqlDataAdapter
da = New MySqlDataAdapter("SELECT * FROM "nome_tabella", db)
da.Fill(ds, "nome_tabella")

tieni presente che nel dataset il nome delle tabelle possono anche non coincidere con quelle del database ma io ti consiglio di farlo....

49 devi andare nella connessione del file report e alla voce "Origini dati disponibili" devi scegliere "dati del progetto" poi DataSets ADO.NET" e qui ti uscira il nome del file dataset da te creato..lo selezioni e ti conseguenza ti darà tutte le tabelle che hai creato..il continuo è classico come penso hai sempre fatto..

ti posto anche il link di mysql per poterti scaricare la versione beta del provider che sto utilizzando..per ora va bene...
http://dev.mysql.com/downloads/connector/net/1.0.html

si chiama mysqlconnection 1.0

Ciao e buona lavoro

Fabio

H2MARON Profilo | Junior Member

che dire...
GRAZIE!...GRAZIE MILLE!!!!!
non ho parole!!!

GRAZIE ANCORA!!!!

H2MARON Profilo | Junior Member

A questo punto ti sfrutto...

il file rpt che si crea, in fase di creazione del paccetto di installazione, se lo porta dietro automaticamente o lo devo inserire io come file?
ciao e grazie ancora!!!

trinity Profilo | Guru

No il file rpt si trova nel progetto della tua applicazione, se crei un progetto di setup devi inserirlo tu manualmente, solo l'output di progetto, ossia il file exe della tua applicazione, si porta in automatico con se tutti i file di dipendenza....

Ciao
Fabio

H2MARON Profilo | Junior Member

Una volta che ho installato il connector...Come cacchio facccio a vedrlo negli odbc...?

trinity Profilo | Guru

Se utilizzi il data provider di mysql MysqlConnector 1.0, questo lo devi installare, poi nel progetto farai tasto di destra aggiungi riferimento, dovrai andare a trovare nella cartella c:\programmi\MySQL AB\Connector .NET\Bin...qui ti escono due cartelle, una per il framework 1.0 ed una per 1.1 a seconda delle tue esigenze aprirai una delle due e troverai la dll:MySql.Data.dll, una volta aggiungo il riferimento su ogni pagina di codice dovrai importare la dll in questo modo: Imports MySql.Data.MySqlClient

a questo punto avrai a disposizione tutto ossia: MysqlConnection,MysqlCommand,MysqlDataReader,MySqlDataAdapter

Ciao
Fabio

H2MARON Profilo | Junior Member

AH! ok...
quindi lo riempio il dataset da codice!!!!
Avevo capito male io scusami!!!

Allora inserire il file Miodataset.xsd a cosa serve di preciso?

altra domanda!
io uso MySqlDriverCS va bene comunque?

scusami per la rottura!!!!!

Ciao e grazie!!!!

trinity Profilo | Guru

Si va bene cmq.

Ciao

H2MARON Profilo | Junior Member

se installo la mia applicazione in un pc che non ha crystal report mi da errore...
Non trova la dll che si chiama keycodev2.dll!

Come devo fare?

trinity Profilo | Guru

Devi importare come riferimento nel tuo progetto i seguenti file:keycodev2.dll e Keycodev2 type library.
poi datti una letta al mio articolo ti può dare un aiuto in + http://www.dotnethell.it/tips/DeployCrystalReports.aspx

Ciao
Fabio

H2MARON Profilo | Junior Member

...grazie mille avenzi una cena!!!

adesso non mi trova i report...dice che è impossibile caricare il report...
però li deve essere colpa mia!!!

grazie mille!!!

H2MARON Profilo | Junior Member

forse ho cantato vittoria troppo presto!!!

non riesce a caricare i report!!!

io da codice imposto il Reportsource con un percorso fisso...
come mai dice che non riesce a caricarli??

ho notato che il messaggio di errore del crystal report e l'etichette del crystal reportviewer sono in inglese mentre da me sono in italiano!!!!

può essere la causa?....grazie!!!

trinity Profilo | Guru

Per i messaggi di errore dipende dalla lingua del framework installato sul pc...
ti posto un modo per caricare i report con crystalreportviewer senza impostare il reportsource in automatico:

Imports CrystalDecisions.CrystalReports.Engine

Dim stampa As New ReportDocument()
stampa.Load("C:\programmi\prova.rpt")
CrystalReportViewer1.ReportSource = stampa


Ciao
Fabio

H2MARON Profilo | Junior Member

Probabilmente sbaglio prima...

una volta che ho creato il dataset1.xsd come faccio a creare la mia tabella...?

trinity Profilo | Guru

utilizzando dei provider di connessione che non sono integrati in vs net come è per oledb,oracle e odbc...le tabelle nel dataset di conseguenza non possono essere generate in automatico, bensì manualmente..quindi devi fare in questo modo:

tasto destar del mouse nel form del dataset e scegli: Aggiungi---nuove element.
Qui dovrai ricostruire teoricamente le tabelle che hai nel database e che devi far riconoscere al report..

Ciao
Fabio

H2MARON Profilo | Junior Member

Allora se io ho una query con più tabelle unite da join praticamente metto i nomi dei campi che ho nel risultato della query...?

trinity Profilo | Guru

Praticamente si!

H2MARON Profilo | Junior Member

allora dopo da codice faccio:

Dim MioAdapter as New MysqlDataAdapter(MiaQuery,Con)
Dim Dset as new MioDataset '...(MioDataset.xsd)

MioAdapter.Fill(Dset)

trinity Profilo | Guru

In sostanza si, solo che ti dimentichi di indicare nell'istruzione fill, oltre che il dataset anche il nome della tabella che hai creato nel file xsd.

vedi questo codice:

Dim ds As New DataSet
Dim da As New MySqlDataAdapter
da = New MySqlDataAdapter("SELECT * FROM "nome_tabella", db)
da.Fill(ds, "nome_tabella")

Ciao

H2MARON Profilo | Junior Member

Ok fatto...però ,scusa se ti rompo,
a sto punto nell'apertura del crystal reports viewer mi presenta la finesta del collegamento al database!

perchè cacchio!!!...ih ih ih ih....

grazie!!!

trinity Profilo | Guru

E' normale perchè non trova il database..una volta creato il dataset e riempito le tabelle(tieni presente che sono tabelle virtuali), devi far riconoscere il dataser al filew report in questo modo: vai alla connessione del file report e alla voce "Origini dati disponibili" devi scegliere "dati del progetto" poi DataSets ADO.NET" e qui ti uscira il nome del file dataset da te creato..lo selezioni e ti conseguenza ti darà tutte le tabelle che hai creato..il continuo è classico come penso hai sempre fatto..

Ciao

H2MARON Profilo | Junior Member

questo l'ho fatto...
è possibile che usando il MySqlDriverCS non funzioni correttamente?

trinity Profilo | Guru

mi sembra un pò strano..però per tagliare la testa al toro prova il dataprovider che ti di di mysql...

Ciao

H2MARON Profilo | Junior Member

ho fatto anche questa prova ma si presenta sempre la finestra di connessione...

io sto utilizzando la versione di crystal report che ho sul mio visual studio.NET
è possibile che sia quello?
devo scaricarne una nuova?

trinity Profilo | Guru

no quella va bene e se alla finistra di connessione gli dai annulla ti dovrebbe far cmq. vedere l'anteprima del report se hai seguito bene le mie istruzioni.

Ciao

H2MARON Profilo | Junior Member

Visto la fretta che avevo ho adottato un altro metodo...senza usare il dataset.xsd!!!

Ti spiego velocemente!

Allora da codice creo un dataset che riempio con i miei dati e al dataset faccio scrivere un file xml...
che poi do al report come fonte dati...

ha funzionato perfettamente!!!

ti ringrazio tantissimo!!!!

trinity Profilo | Guru

Ok, sono contento che hai trovato la soluzione al tuo problema, buon lavoro.

Ciao
Fabio
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 !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5