SubReportProcessing ReportViewer local mode VS05 VB.NET

giovedì 14 giugno 2007 - 14.59

kunio Profilo | Junior Member

Ciao a tutti
Considerazione
L’evento SubreportProcessing scatta ogni qualvolta in cui si trova un controllo subreport all’interno del report che si sta renderizzando. Se ci sono più subreport all’interno di un report padre l’aggiunta di una fonte dati viene eseguita una sola volta . Se il controllo subreport è all’interno di una lista o di una tabella questo evento scattera tante volte quante sono gli elementi della tabella o della lista.

Esempio:
Un modello a 2 livelli (padre figlio) tipo testata fattura e dettagli fattura costituito dal report testata. Viene realizzato con un Report padre contenente una lista con all’interno valori di testata e il controllo subreport che punta al file rdlc con la definizione del report contenente la tabella con le informazioni di dettagli fattura che viene filtrata mediante il numero fattura passato dal report padre. Il modello funziona nel modo seguente...per la prima fattura scatta l’evento subreportprocessing che linka la fonte dati del subreport per la seconda fattura riscatta l’evento subreportprocessing e viene rilinkata la fonte dati...

Domanda

Ma non è un controsenso rilinkare la stessa fonte dati più volte?...
bisognerebbe mettere un controllo nel gestore dell’evento subreportprocessing per far si che la fonte dati del subreport venga linkata una sola volta?...in una struttura con un report avente un subreport che a sua volta ha all’interno un subreport farebbe molte volte il l’aggiunta di una fonte dati che ha già

freeteo Profilo | Guru

ciao,
si effettivamente la domanda è giusta e non ho una soluzione validissima da proporti.

Pero' tipicamente io faccio pochi sottoreport perche' trovo piu' "gestibile" i raggruppamenti, quindi nel tuo caso farei un "left join" tra la testata e le righe, facendo poi raggruppamenti per i campi di testata.
Se non lo puoi fare da stringa sql perche' stai lavorando con collection di oggetti, io tipicamente mi costruisco una classe adhoc per il repotr dove "simulo" la leftjoin ripetendo i dati...
Se non è troppo complesso velocizzi il codice e vai via piu' spedito, anche se giustamente, hai una mole di dati maggiore in memoria quindi va valutata nel tuo scenario...
ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo
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