Agganciare un report .rdlc a reportviewer

lunedì 14 aprile 2008 - 12.15

Rik142 Profilo | Junior Member

Ciao a tutti!!


Sto creando un report con visual studio 2008, ho già avuto modo di associare al report un dataset, che prende i dati da una vista creata sul mio db, e non riesco a capire come collegare il file .rdlc del mio report al reportviewer inserito nella mia usercontrol.


Qualcuno sa darmi qualche dritta??

Grazie mille a tutti per la disponibilità.

Riccardo

amdbook Profilo | Junior Member

Ci sono due modi di associare un file .rdlc ad un controllo ReportViewer.
Se il file di report è una risorsa embedded del tuo assembly, allora puoi scrivere:

ReportViewer.LocalReport.ReportEmbeddedResource ="NomeAssembly.Report.rdlc"

altrimenti se è un file esterno, puoi scrivere:

ReportViewer.LocalReport.ReportPath ="c:\...\Report.rdlc"

Rik142 Profilo | Junior Member

Questa riga di codice è sufficiente affinchè io riesca a vedere il mio report a video all'interno della mia applicazione?

Perchè non riesco a visualizzarlo.

amdbook Profilo | Junior Member

Prova ad utilizzare questo codice:

ReportViewer.RefreshReport()

In generale, dovresti:

1) Agganciare il report (ad esempio con il codice postato in precedenza)
2) Aggiungere il DataSource del Report
3) Impostare (Se presenti) i parametri del report
4) Visualizzare il report

Rik142 Profilo | Junior Member

Allora, ti dico i passaggi chiave, così puoi consigliarmi dove sbaglio:

Dim listfornitore_datasource As New Microsoft.Reporting.WinForms.ReportDataSource Dim dt_fornitore As New DataTable("Fornitore") Dim Classe_fornitore As New DataLayer_t_ana_fornitori dt_fornitore.Columns.Add("Codice", GetType(Decimal)) dt_fornitore.Columns.Add("Ragione_Sociale", GetType(String)) dt_fornitore.Columns.Add("Indirizzo", GetType(String)) dt_fornitore.Columns.Add("Stato", GetType(String)) dt_fornitore.Columns.Add("Cod_Rif_Forn", GetType(String)) dt_fornitore.Columns.Add("Città", GetType(String)) dt_fornitore.Columns.Add("Descrizione", GetType(String)) dt_fornitore.Columns.Add("Provincia", GetType(String)) dt_fornitore.Columns.Add("Nazione", GetType(String)) dt_fornitore.Columns.Add("Telefono", GetType(String)) dt_fornitore.Columns.Add("Fax", GetType(String)) dt_fornitore.Columns.Add("Mail", GetType(String)) dt_fornitore.Columns.Add("Referente", GetType(String)) RPTViewer_VerIspettiva.LocalReport.ReportPath = "E:\VSS\...\...\rptVerIspettiva.rdlc" lista_fornitore = Classe_fornitore.Load(CDec(tbfFornitore.Values("Codice")), FormMain.centrale) dt_fornitore.Rows.Add(lista_fornitore.Codice) dt_fornitore.Rows(0).Item(1) = lista_fornitore.Ragione_Sociale dt_fornitore.Rows(0).Item(2) = lista_fornitore.Indirizzo dt_fornitore.Rows(0).Item(3) = lista_fornitore.Stato dt_fornitore.Rows(0).Item(4) = lista_fornitore.Cod_Rif_Forn dt_fornitore.Rows(0).Item(5) = lista_fornitore.Città dt_fornitore.Rows(0).Item(6) = lista_fornitore.Descrizione dt_fornitore.Rows(0).Item(7) = lista_fornitore.Provincia dt_fornitore.Rows(0).Item(8) = lista_fornitore.Nazione dt_fornitore.Rows(0).Item(9) = lista_fornitore.Telefono dt_fornitore.Rows(0).Item(10) = lista_fornitore.Fax dt_fornitore.Rows(0).Item(11) = lista_fornitore.Mail dt_fornitore.Rows(0).Item(12) = lista_fornitore.Referente listfornitore_datasource.Name = "ds_Vista_VerificaIspettiva" listfornitore_datasource.Value = dt_fornitore Me.RPTViewer_VerIspettiva.LocalReport.DataSources.Clear() Me.RPTViewer_VerIspettiva.LocalReport.DataSources.Add(listfornitore_datasource) Me.RPTViewer_VerIspettiva.LocalReport.Refresh()

Con questo codice non riesco ancora a visualizzare nulla.
Non ci sono errori secondo il compilatore, il datasource del report lo riempie ma non compare nulla a video se non il reportviewer vuoto.

Grazie mille per l'aiuto che mi dai!

amdbook Profilo | Junior Member

Ho allegato a questa risposta un progetto d'esempio (funzionante) che ricalca la tua situazione.
Prova a confrontare i due progetti e i due report. Non conoscendo il tuo report, potrebbe
dipendere da quello.

Rik142 Profilo | Junior Member

Ho collegato tutto quanto ma in fase di visualizzazione mi da il seguente messaggio nel reportviewer:

"Non è stata fornita un'istanza dell'origine dei dati per l'origine dei dati "ds_vista_VerificaIspettiva".

Cosa vuol dire?

amdbook Profilo | Junior Member

Sicuro che il nome della sorgente dati sia lo stesso (compreso maiuscole/minuscole) di quello specificato all'interno del report (Utilizzando ad esempio un Report Item di tipo Table) ?

Rik142 Profilo | Junior Member

cioè?

Forse ho sbagliato a passargli il nome del dataset?

amdbook Profilo | Junior Member

Potrebbe...

Rik142 Profilo | Junior Member

Una domanda:

il valore che devo passare al "report_datasource.name", ad esempio, è solo il nome del mio dataset (ds_pippo) o anche della vista che lo compone (ds_pippo.Vista_VerificaIspettiva)?

Nel 2008 ho notato che è presente questa istruzione diversa dal 2005:

dt_report.AddVista_VerificaIspettivaRow(row_report). Immagino sia l'equivalente di dt_report.Rows.Add(row_report). Giusto?

Perchè arrivato a questo punto non so più cosa pensare!!

amdbook Profilo | Junior Member

E' del tipo DataSetName_TableName (ad esempio). Hai provato l'esempio che ti ho allegato nei post precedenti?

Rik142 Profilo | Junior Member

Alla fine era sbagliato il nome del dataset o meglio ho dovuto controllare il codice html per trovare il nome del dataset che richiedeva.

Comunque tutto risolto!!

Grazie mille per le dritte utilissime!!

Ciao

Rik
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