Ciao Spartacus, perdona il ritardo nella risposta.
Ti rispondo nel caso avessi ancora il problema da risolvere:
puoi fare tranquillamente quello che hai in mente, è una soluzione corretta per avere un'unica maschera che decide cosa deve mostrare, chiaramente con tutti i dettagli del caso (caricamento dati etc...).
La cosa è fattibile con un codice banale di questo tipo:
...
LocalReport report = viewer.LocalReport;
report.LoadReportDefinition();
IEnumerable<...> dati = GetDati();
ReportDataSource source = new ReportDataSource("#NOME#", dati)
report.DataSources.Add(source);
viewer.RefreshReport();
...
dove:
- "viewer" è il tuo reportViewer che hai nella form
- "#NOME#" è il nome della datasource che hai dato in fase di design del report
- GetDati è la funzione che torna una Collection<T> di tuoi oggetti, oppure la cambi e metti che ti torna un DataTable se vai meglio, è lo stesso.
Ciao.
Matteo Raumer
[MCAD .net, MVP Visual C#]
http://blogs.dotnethell.it/freeteo