mercoledì 12 maggio 2010

Reporting Services esportare il report ed utilizzare i parametri tramite C#

Riporto l'articolo scritto per il sito http://www.iprogrammatori.it/articoli/programmazione/art_utilizzare-i-parametri-in-un-reportviewe_908.aspx


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.

Nessun commento: