Ancora problemi con reportview

venerdì 08 febbraio 2013 - 14.55
Tag Elenco Tags  VB.NET  |  .NET 3.5

Mau67 Profilo | Expert

Nel mio programma devo creare un report con reportview, e devo prendere i dati da una list view che si trova in un form diverso dal form dove lancio la stampa.
Praticamente carico i dati dentro la listview che si trova nel form1 poi nel button passo i dati della listview al dataset e apro il form2 dove c'è il reportview ma non mi carica i dati e il dataset è popolato lo provato caricando un altro listview dal dataset.
Mi sapete dire ome posso fare?
E se magari è possibile mandare in stampa i dati direttamente dalla listview?
Ciao grazie
N.B. sviluppo in visual studio 2012 professional
Mau67

freeteo Profilo | Guru

Ciao Mau67,
vorrei darti qualche indicazione anche "teorica" su quello che hai scritto, così ti può tornare utile per capire dove potrebbe scaturire il problema.


>Nel mio programma devo creare un report con reportview, e devo
>prendere i dati da una list view che si trova in un form diverso
>dal form dove lancio la stampa.
il fatto che dici "prendo i dati dalla listview", anche se mentalmente è il processo che ti immagini di fare, concettualmente è sbagliato perchè i dati dovrebbero essere messi in qualche collection tipo Collection<T> e poi ci fai quello che vuoi, ossia la listview è qualcosa che visualizza (con dei template etc...) e lo stesso è il ReportViewer (chiaramente in maniera più complessa)



>Praticamente carico i dati dentro la listview che si trova nel
>form1 poi nel button passo i dati della listview al dataset e
>apro il form2 dove c'è il reportview ma non mi carica i dati
>e il dataset è popolato lo provato caricando un altro listview
>dal dataset.
ecco, come ti dicevo, dovresti avere una Collection in memoria, va bene anche un dataset anche se io te lo sconsiglio dal punto di vista architetturale.
Di fatto cmq non è un errore, infatti dovrebbe funzionare correttamente passando i dati come datasource del ReportViewer.
Hai passato i dati con il metodo SetDataSource("nome", dataset.Tables(0))... o qualcosa del genere?

Ciao.

Matteo Raumer
[MCAD .net, MVP Visual C#]
http://blogs.dotnethell.it/freeteo

Mau67 Profilo | Expert

Grazie della risposta, ti posto il codice che ho scritto ma che non produce risultati di visualizzazione di dati nel report, io non riesco a vedere l'errore magari tu un occhio esperto trova l'errore

Popolo il dataset dal form (A) e chiamo il form (B) per lanciare il report

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim dtsReport As New dtsReport
Dim tableRegistro As New dtsReport.Registro7MDataTable()
Dim id As ListViewItem
Dim idCollection As ListView.CheckedListViewItemCollection = Me.ListView2.CheckedItems
For Each id In idCollection
If id.Checked = True Then
Dim RowRegistroRow As dtsReport.Registro7MRow = tableRegistro.NewRegistro7MRow
RowRegistroRow = dtsReport.Registro7M.NewRow
RowRegistroRow.NrProg = id.Text
RowRegistroRow.NrCarico = id.SubItems(1).Text
RowRegistroRow.NrScarico = id.SubItems(2).Text
RowRegistroRow.DataDocum = id.SubItems(3).Text
RowRegistroRow.TipoMov = id.SubItems(4).Text
RowRegistroRow.EstremiDoc = id.SubItems(5).Text
RowRegistroRow.Materiale = id.SubItems(6).Text
RowRegistroRow.Reparto = id.SubItems(7).Text
RowRegistroRow.Citta = id.SubItems(8).Text
dtsReport.Registro7M.Rows.Add(RowRegistroRow)
End If
Next
My.Forms.Report.ParametroReport = "Registro"
My.Forms.Report.ShowDialog(Me)
End Sub


aperto il report dovrebbe popolarsi il report di dati ma visualizzo solo le intestazioni di colonna

Private Sub Report_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim dtsReport As New dtsReport
Dim tableRegistro As New dtsReport.Registro7MDataTable()
Dim reportDataSource As New Microsoft.Reporting.WinForms.ReportDataSource()
reportDataSource.Name = "DataSet1"
reportDataSource.Value = tableRegistro
Me.ReportViewer1.LocalReport.ReportPath = Percorso & "\Registro7M.rdlc"
Me.ReportViewer1.LocalReport.DataSources.Clear()
Me.ReportViewer1.LocalReport.DataSources.Add(reportDataSource)
Me.ReportViewer1.RefreshReport()
End Sub


se noti l'eerore poteresti gentilmente correggerlo grazie
Mau67
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-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5