Passaggio parametri da pagina .aspx a report con report services

sabato 21 febbraio 2009 - 17.55

colale Profilo | Newbie

Ciao a tutti!!
Ho il seguente problema:
Da una pagina .aspx c# contenente alcune dropdownlist (per esempio 3), vorrei passare il contenuto delle
scelte effettuate, ad un report che gira sotto report services e che attende i 3 parametri
@NAZIONE @PROVINCIA @CITTA
Nel report la query che attende i 3 parametri svolge il suo dovere (se ha i 3 parametri predefiniti) e ritorna
solo i record che soddisfano la richiesta.
Le domande sono:
1-Dalla pagina contenente i dropdownlist come faccio a chiamare l'esecuzione del report con il passaggio dei
parametri??
per quello che so' il controllo 'reportviewer' (che ho inserito nella medesima pagina)
richiama il report gestito dal report service al momento dell'esecuzione della pagina stessa...
2-Puo' essere la pagina stessa (tramite un bottone...) a dare il via al richiamo del report?? (se si allora sarebbe
opportuno inserire il controllo 'reportviewer' in un'altra pagina, richiamata dalla precedente che nello
stesso momento 'passa' i parametri)
Oppure il report non viene richiamato fino a quando i parametri non gli vengono messi a disposizione??
(ho provato cosi' ma il report mi si presenta con i 3 parametri da inserire manualmente...)

Grazie a chi vorra' darmi una mano...
Ciao

freeteo Profilo | Guru

>Ciao a tutti!!
Ciao, perdona il ritardo nella risposta, forse avrai già risolto cmq ti rispondo ugualmente.


>1-Dalla pagina contenente i dropdownlist come faccio a chiamare
>l'esecuzione del report con il passaggio dei
> parametri??
dipende da come hai creato il report, nel senso che potrebbe essere un report ".rdlc" oppure un report ".rdl" in quest'ultimo caso hai anche il fatto che viene elaborato in un Report Server e quindi il codice potrebbe nn essere lo stesso.
Cmq sia potresti partire da qualcosa di questo tipo:
LocalReport report; report = this.reportViewer1.LocalReport; report.ReportPath = "c:\...ReportEmployee.rdlc"; List<ReportParameter> parametri = new List<ReportParameter>(); parametri.Add(new ReportParameter("nome", "valore")); report.SetParameters( parametri ); //--- passaggio dei dati report.DataSources.Add( new ReportDataSource("NorthwindDataSet_Employees", new NorthwindDataSetTableAdapters.EmployeesTableAdapter().GetData()) ); this.reportViewer1.RefreshReport();

e questo codice lo metti in una pagina web, nel "page_load" e nella quale c'è dentro un ReportViewer,, come vedi alla fine glielo passi tu, dandogli il path, e al quale poi setti i dati con "setDataSource".

La cosa però è fatta per report senza ReportServer, usando un file locale "rdlc" che è un report normalissimo solo che funziona solo passandogli i dati come sorgente.
Quella parte nel tuo caso secondo me non serve perchè è tutto sul server, quello che ti serve è cercare di cambiare il nome del report che viene caricato sul server, magari nella proprietà "reportViewer1.ServerReport.ReportPath" o qualcosa del genere...

Ciao.

Matteo Raumer
[MVP Visual C#]
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