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 in base ai dati di un DataGridView (Visual Studio 2005)...
giovedì 26 marzo 2009 - 12.10
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Rapox
Profilo
| Newbie
6
messaggi | Data Invio:
gio 26 mar 2009 - 12:10
Innanzitutto, Salve a Tutti
Il mio problema è questo, da alcuni giorni ho iniziato a guardare i Report tramite Crystal Report.
Ho realizzato un modulo apposta per il Load e il DataSource del Report.
Ho immesso nell'apposita form un Crystal Viewer per la visualizzazione dei dati.
Ma il mio problema è questo, come faccio, ora, a settare i vari parametri del report.
Il database da cui vengono presi i dati non è collegato al progetto, Tutte le operazioni da me fino a ora fatte , sono state effettuate senza wizard ... ma tramite codice
Come faccio a creare dei campi , da associare successivamente a dati scelti dall'utente.
----------------------------------
Metodo CaricaReport
Dim Report as New ReportDocument
Dim reportPath As String = percorso dove è situato il Crystal Report
Report.Load(reportPath)
Report.SetDataSource(dsFatture.Tables("Fatture Clienti"))
CRViewer.ReportSource = Report
Se non son stato chiaro, ditemelo ....
luxsor
Profilo
| Guru
1.079
messaggi | Data Invio:
gio 26 mar 2009 - 12:55
Ciao Renato,
ci sono tuo modi:
- O al Crystal Report gli passi un dataset popolato con la tua query con tutti i filtri di ricerca ecc.
Dim table As New DataTable
adapter.Fill(table)
TuoReport.SetDataSource(table)
- O crei una connessione ad un datasource tramite crystal report e gli crei un comando (sarebbe la query) e gli passi i paramentri per effettuare il filtri sulla query
Fammi sapere
Rapox
Profilo
| Newbie
6
messaggi | Data Invio:
gio 26 mar 2009 - 13:06
Allora il passaggio tramite dataset al Report c'è gia
Report.SetDataSource(dsFatture.Tables("Fatture Clienti"))
dsFatture è il DataSet, con relativa tabella.
Ora quando effettuo il deug, mi da un errore, dicendo che non esistono tabelle nel report.
Ma penso sia normale in quanto, nel Crystal Report (.rpt) non avevo messo campi.
Il mio problema ora è :
Ora che li ho inseriti manualmente, e quindi senza wizard tutti i campi del Report
Come faccio a collegare i vari parametri da me creati, con gli stessi parametri che vengono presi dal dataset ?
Esiste un modo per impostare i parametri, le righe del report da codice ?
luxsor
Profilo
| Guru
1.079
messaggi | Data Invio:
gio 26 mar 2009 - 13:15
Usa questo:
Dim DBConn As SqlConnection
Dim Rep1 As New TuoReport
Dim SQL As String
SQL = "tua query”
Dim mySQLDbCommand As SqlCommand
DBConn = New SqlConnection(“stringa di connessione alla sorgente dati”)
DBConn.Open()
mySQLDbCommand = New SqlCommand(SQL, DBConn)
Dim adapter As SqlDataAdapter = New SqlDataAdapter()
adapter.SelectCommand = mySQLDbCommand
Dim table As New DataTable
adapter.Fill(table)
Rep1.SetDataSource(table)
Form1.CrystalReportViewer1.ReportSource = Rep1
Rapox
Profilo
| Newbie
6
messaggi | Data Invio:
gio 26 mar 2009 - 13:23
Con il tuo codice, si va a fare una query sul db , si estrae i relativi campi interessati, e li si va a salvare nel DataTable.
Tutto questo, l'ho gia fatto
Mi serve solo capire come immettere i campi del DataTable o DataSet all'interno del Crystal Report.
Il DataSet pubblico del programma, a cui vengono passati i dati, dopo una relativa query non me lo vede
E quindi ho deciso di crearli direttamente io, ma cosi facendo non son collegati a nulla.
Mi scuso, per la poca comprensione
luxsor
Profilo
| Guru
1.079
messaggi | Data Invio:
gio 26 mar 2009 - 13:29
>Mi serve solo capire come immettere i campi del DataTable o DataSet all'interno del Crystal Report.
In teoria dovresti avere in Esplora Campi una tabella contenenti tutti i campi inseriti nella query. Vi che così non è:
apri Explora Soluzione / Esperto Database apri la connessione con la sorgente dati, crea un comando (sarebbe la tua query) e fai applica.
Ora dovresti avere tutti i campi.
Rapox
Profilo
| Newbie
6
messaggi | Data Invio:
gio 26 mar 2009 - 13:34
Provo e ti dico
Anche perchè l'unica prova che avevo fatto, prima di oggi, era la creazione di un DataSet da Esplora soluzioni... cosi me lo vedeva, ma mi ero fermato sul come dire al DataSet appena creato di andare a prendere i dati dall'altro realizzato da codice e caricato tramite query sul db
EDIT:
Niente, forse il problema dervia dal fatto che non ho collegato nessun db al Crystal Report.
luxsor
Profilo
| Guru
1.079
messaggi | Data Invio:
gio 26 mar 2009 - 16:42
Se non gli passi una fonte di dati, non potrai inserire nel report quei campi.
Rapox
Profilo
| Newbie
6
messaggi | Data Invio:
gio 26 mar 2009 - 17:14
Teoricamente la fonte dati dovrebbe essere il DataGridView dove vengono visualizzati i dati in base alle impostazioni di ricerca.
Solo che non vendendomi nessun campo del DataSet in Esperto DataBase, non riesco a fare nulla.
Se volessi Realizzare una Tabella all'interno del Report e passargli un DataSet ? sarebbe possibile ?
luxsor
Profilo
| Guru
1.079
messaggi | Data Invio:
gio 26 mar 2009 - 17:23
Se hai già un Datagridview popolato, usa questo:
Report.SetDataSource(DGV.DataSource)
Se non riesco, allega un esempio del programma
Rapox
Profilo
| Newbie
6
messaggi | Data Invio:
ven 3 apr 2009 - 09:55
Allora ho risolto il problema per cui avevo aperto questo thread.
Era dovuto principalmente alla sorgente dei dati che dovevo impostare al report, la formula qua sopra non mi andava, cosi ho collegato il report al BindingSource presente nel progetto, e che viene utilizzato per filtrare i dati :
NomeReportDocument.SetDataSource(NomeBindingSource.List)
Il REPORT è ora cosi strutturato :
- Intestazione Report : Statistiche di stampa
Richiamate dal form dove è anche presente il dgv tramite la formula che ho trovato in questo forum :
NomeReportDocument.DataDefinition.FormulaFields("Nome Campo Formula").Text = "'" + TextBox/Label + "'"
- Intestazione Pagina :
Logo - Dati
Nome Campi Db
- Dettagli : campi database
Funziona tutto perfettamente, in base alla sezione fatta da un ipotetico utente, mi vengono mostrati i campi inerenti nel report.
Ora, l'ultima cosa che non son riuscito a trovare, per completare il programma è questa
Se io ho i vari campi del db nel Report
Section 2 (Intestazione Pagina)
Codice Nome Cognome AnnoDiNascita CodiceFiscale
Section 3 (Dettagli)
1 Pippo pippo 1/1/1 rdiew873s9
2 pluto pluto 2/2/2 erqwq394ws
3 paperino paperino 3/3/3 sadf34sa
Ma voglio stampare due casi :
a) caso a , comune - stampa il report
b) caso b , l'utente vuole decidere quali campi stampare ( solo codice Nome Cognome) e nascondere i dati di tutti gli altri campi
Come posso fare ?
Grazie in anticipo
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 !