Sotto Report con Reportviewer

lunedì 11 maggio 2009 - 18.30

dvd75 Profilo | Newbie

Ciao a tutti, mi chiamo David e sono un dilettante che stà per concludere la sua prima vera applicazione in Visual studio 2008 dopo qualche trascorso sempre come autodidatta in Visual Basic 6
Detto ciò mi manca davvero l'ultima cosa e poi ho termito la mia semplice applicazione, ma questo benedetto sottoreport proprio non son capace, cercando si trova poco per adesso ho fatto i seguenti passi che vi descrivo, ma ricevo sempre il classico "Impossibile visualizzare il sottoreport..."

Ho un dataset generato da un file di Access versione 2003: dbArchivioDataSet
Datatable (query) PADRE: qryComputi
Datatable (query) FIGLIA : qryRaggruppamento_AP
Campo relazione: IDComputo
Ho generato il report padre (Computo) e il report figlio(Conteggio) il campo che mette in relazione i due datatable è IDComputo
Ho inserito un parametro nel report figlio con nome IDComputo ed una volat inserito il sottoreport nel padre ho correlato il parametro del figlio con la casella dati (=Fields!IDComputo.Value) che si trova sul padre

Ecco il codice che ho messo nel form che contiene il reportviewer :
Public Class frmReportDistinta

Private Sub frmReportDistinta_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

Me.qryComputiTableAdapter.FillIDLavoro(Me.dbArchivioDataSet.qryComputi, IDLavoro)
Me.qryRaggruppamento_APTableAdapter.Fill(Me.dbArchivioDataSet.qryRaggruppamento_AP) '.....(*)

AddHandler Me.ReportViewer1.LocalReport.SubreportProcessing, AddressOf Me.LocalReport_SubreportProcessing
Me.ReportViewer1.RefreshReport()
End Sub

Private Sub LocalReport_SubreportProcessing(ByVal sender As Object, ByVal e As SubreportProcessingEventArgs)
e.DataSources.Add(New ReportDataSource("dbArchivioDataSet", Me.qryRaggruppamento_APBindingSource))
End Sub


End Class


(*)Come si legge ho tentato di riempire con i dati il datatable del dettaglio con fill...ma niente...dove sbaglio?
Grazie 1000



P.S. nell'attesa mi sono organizzato con crystal, che è molto più intuitivo(almeno per me), però mi resta la sensazione che sia un pò più "pesante" crystal, quindi appena avete 5 minuti toglietemi stò tarlo del sottoreport "maledetto" :)

freeteo Profilo | Guru

>(*)Come si legge ho tentato di riempire con i dati il datatable
>del dettaglio con fill...ma niente...dove sbaglio?
>Grazie 1000
ciao, il codice che hai scritto mi sembra anche corretto, ma forse non ha passato il nome della datasource corretta al sottoreport.
Cmq sia prova a confrontarlo con l'esempio che trovi qui: http://www.gotreportviewer.com/ sulla destra c'è l'esempio con "subreport".



>P.S. nell'attesa mi sono organizzato con crystal, che è molto
>più intuitivo(almeno per me), però mi resta la sensazione che
>sia un pò più "pesante" crystal
si, confermo la pesantezza e anche l'intuitività

Ciao.

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

dvd75 Profilo | Newbie

Grazie freeteo, ma l'ho già confrontato già prima di scrivere quà, cercando di analizzare bene tutti i passaggi, è non c'è stato verso, non riesco proprio a capire dove sbaglio

freeteo Profilo | Guru

Puoi allegare il progetto? oppure inviamelo via email (che trovi nel mio profilo).

ps: metti anche il db se possibile (anche con dati d'esempio) per avere una situazione reale.

Ciao.

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

dvd75 Profilo | Newbie

Ecco allego il progetto "alleggerito" con il solo form che dovrebbe visualizzare il report con sotto-report, ho riscritto tutto come avevo fatto in precedenza.
Il database è compreso nello zip, la stringa di connessione salvata nel progetto(anche se sicuramente saprai come fare.. ) cerca il database in C:\Archivio

dvd75 Profilo | Newbie

Ho allegato il progetto nel messaggio precedente

freeteo Profilo | Guru

Ciao,
guardando l'esempio che hai allegato, come ti chiedevo inizialmente, il nome della datasource non è esatto:
si chiama "dbArchivioDataSet_qryConteggio_AP" e non "rptConteggi_AP.rdlc" come hai messo tu, quello è il nome del sottoreport e non della datasource.

Lo capisci dal nome della datasource del sottoreport, aprendolo e andando nel "menù Report->Data Sources->Report Data Sources"...
Ovviamente devi filtrare tu i dati, perchè provando quello che gli passi poi non è linkato al record del report principale che sta visualizzando, ma il parametro che hai passato al subreport (correttamente) devi poi utilizzarlo come "Filter" nella tua tabella del sottoreport (rptConteggi_AP.rdlc)

Ciao.

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

dvd75 Profilo | Newbie

Grazie ancora adesso funziona!!
...e per adesso ciao ciao crystal-tartaruga
mi rimetto al lavoro perchè devo completare il tutto con altri 3 sottoreport, e i vari filtri!

lebronjames Profilo | Newbie

Ciao,
ho seguito tutte le tue indicazioni... il sottoreport mi viene visualizzato ma di una lista di valori visualizza solo l'ultimo....
es.
1 casa 100 0
2 ufficio 120 0
3 sede1 0 45

visualizza solo
3 sede 0 45

il codice

Private Sub FormStampadettagliMesi_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

Dim instance As LocalReport = Me.ReportViewer1.LocalReport

'Me.DataTable1TableAdapter.Fill(Me.DatiDataSet.DataTable1)
Me.DataTable1TableAdapter.FiltraPerData(Me.DatiDataSet.DataTable1, "01/01/2007", "31/12/2007")
AddHandler ReportViewer1.LocalReport.SubreportProcessing, AddressOf Me.SubreportProcessingEventHandler
Me.ReportViewer1.RefreshReport()

End Sub
Public Sub SubreportProcessingEventHandler(ByVal sender As Object, ByVal e As SubreportProcessingEventArgs)

e.DataSources.Add(New ReportDataSource("datiDataSet_DataTable1", Me.DatiDataSet.DataTable1))

End Sub

grazie ancora

lebronjames Profilo | Newbie

Scusate problema risolto ....
errore nella progttazione del subreport....

Grazie
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