Automatizzare Reporting Services con codice managed
Reporting Services di SQL Server 2005 non significa solo report esposti da IIS e quindi raggiungibili via browser, ma significa anche avere un componente lato client per fare esattamente la stessa cosa. E’ quello che ho fatto nell’applicazione di fatturazione che ho reso pubblica molto, molto tempo fa.
I report sono in formato RDLC ed usando la finestra di preview è possibile stampare sulla stampante di default, esportare in PDF e fare le solite cose fattibili con un’anteprima di stampa (zoom, regolare l’orientamento della pagine, decidere la stampante, settare il numero di copie, etc.). Ma non solo.
L’architettura di Reporting Services permette di scrivere codice managed per ottenere lo stesso risultato raggiungibile dalla classica UI. Per esempio: possiamo lanciare una stampa di una certa fattura senza alcuna richiesta da parte dell’utente, e possiamo esportare un report di stampa in qualsiasi formato, tra cui il PDF. Ecco qualche link utile per questo tipo di approccio.
Programattically render pdf from ReportViewer
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=240094&SiteId=1
Walkthrough: Printing a Local Report without Preview
http://msdn2.microsoft.com/en-us/library/ms252091(VS.80).aspx
Due piccole note. L’esportazione in formato PDF è piuttosto semplice, perchè il metodo Render esposto dalla classe LocalReport non fa altro che ritornare un byte[] che poi va salvato su disco dandogli un nome come C:MioReport.pdf.
La stampa diretta su stampante è invece un po’ più impegnativa, perchè comunque passa attraverso l’uso dei tradizionali oggetti PrintDocument di .NET per stampare il documento.
Se stasera riesco, integro queste due piccole scoperte nel mio RapportinoMaker e se ce la faccio entro fine mese ho tutto automizzato. Spettacolare!
Technorati Tags: programming report