Introduzione.
Quando si utilizzano dei report, creati con Reporting Services 2005 o 2008, si può avere la necessità di utilizzare dei parametri. In questo articolo ,vedremo l’utilizzo dei parametri e come effettuare il download del report in formato PDF, sfruttando la funzionalità messe a disposizione da questo strumento.
In Asp.net, possiamo visualizzare i report, creati con Reporting Services, apportando alle nostre applicazioni web, un tocco di professionalità e sfruttando le potenzialità messe a disposizione da Sql Server 2005 o versione successiva.
Dopo aver creato un progetto di tpo web, inseriamo un controllo reportViewer, il quale controllo permetterà di visualizzare i report
Stesura di codice
Passiamo in visualizzazione codice, nell’evento load di una pagina web o nel click di un pulsante, scriviamo il codice che permette il caricamento dei dati ed il download del file.
Dopo aver impostato alcune proprietà del report, come la visualizzazione del pulsante torna indietro, le credenziali ed il percorso del report, si crea un oggetto lista di tipo ReportParameter, il quale conterrà i singoli parametri che passeremo al report.
Tramite il metodo SetParameters, del controllo (che abbiamo inserito nella pagina web) reportviewer si imposta la lista dei parametri, mentre tramite il metodo Render del controllo si ricava lo stream di byte del formato pdf relativo al report che stiamo caricando.
Questo array di byte ci serve per effettuare il download del report
Nel codice sottostante trovate le suddette operazioni.
//Carico a run time il nome del report
string ReportPath = "";
if (Session["ReportPath"] != null)
ReportPath = Session["ReportPath"].ToString();
else
return;
ReportViewer1.ShowBackButton = true;
ReportViewer1.ServerReport.ReportServerCredentials = new ClasseCredentials();
ReportViewer1.ServerReport.ReportPath = ReportPath;
//imposto la lista dei parametri
List<ReportParameter> listParam = new List<ReportParameter>();
ReportParameter param;
//imposto un parametro di chiamato Nome, con un valore e lo aggiungo alla lista dei parametri
string Nome = Session["Nome"].ToString();
param = new ReportParameter("Nome", Nome);
listParam.Add(param);
//imposto un parametro di chiamato Cognome, con un valore e lo aggiungo alla lista dei parametri
string Cognome = Session["Cognome"].ToString();
param = new ReportParameter("Cognome", Cognome);
listParam.Add(param);
//imposto un parametro di chiamato Nazione e valorizzo la lista dei parametri
string Nazione = Session["Nazione"].ToString();
param = new ReportParameter("Nazione ", Nazione);
listParam.Add(param);
//imposto tramite il metodo SetParameters, imposto la lista dei parametri
ReportViewer1.ServerReport.SetParameters(listParam);
string mimeType;
string encoding;
string extension;
string[] streamids;
Warning[] warnings;
//Esporto in PDF il report
byte[] result = ReportViewer1.ServerReport.Render("PDF", null, out mimeType, out encoding, out extension, out streamids, out warnings);
Response.Clear();
Response.ContentType = "application/pdf";
String NomeFile = "File-";
if (Session["NomeFile"] != null)
NomeFile = Session["NomeFile "].ToString();
Response.AddHeader("Content-disposition", "attachment; filename=" + NomeFile + ".pdf");
Response.BinaryWrite(result);
Response.Flush();
Response.End();
Conclusioni
La tecnologia Reporting Services, è molto potente, un valido strumento per la creazione dei report, le funzionalità e l’utilizzo di questo strumento, permettono di realizzare applicazioni windows application o web application con un alto livello di professionalità.
L’articolo ha voluto fornite una tecnica di utilizzo dei parametri, ossia la possibilità di visualizzare un report in riferimento ai dati passati estrapolando di volta in volta, informazioni in base a dei dati che sono stati forniti. Inoltre si è visto, come una volta caricato il report si effettui il download in formato PDF, permettendo a questo strumento di effettuare tale esportazione.