Articoli con tag ReportViewer

Stampa di un Report (rdlc) in Visual Studio senza anteprima e con numero di copie selezionabile

Questa sera, sviluppando un software gestionale in C# (Visual Studio 2008 – .Net Framework 3.5) mi sono trovato davanti ad un problema. Ho la necessità di mandare in stampa un Report (estensione rdlc) realizzato con il Report Designer di Visual Studio, senza passare per l’anteprima e con un numero di copie variabile.

Cercando (“c# print report without preview“) sui numerosi forum che trattano di programmazione, ho trovato molti post che fanno riferimento ad un articolo Microsoft, presente in http://msdn.microsoft.com/en-us/library/ms252091.aspx

Mi sono letto l’articolo, ho cercato di capirne il funzionamento ed ho deciso di scrivere una classe che mi permettesse di stampare senza troppa fatica un Report esistente. L’unico metodo pubblico della classe permette anche di selezionare il numero di stampe da effettuare.

Le modifiche al codice, rispetto a quello dell’articolo, sono minime e riguardano appunto quest’ultima funzione e la capacità della classe di ricavare le dimensioni ed i margini del Report direttamente dall’oggetto passato.

PrintReport.cs

Nella classe chiamante, impostare il Report locale personalizzando il seguente codice:

            LocalReport lr = new LocalReport();
lr.ReportPath = reportPath;
lr.EnableExternalImages = true;
lr.DataSources.Add(source);
lr.SetParameters(parameters);
lr.Refresh();

con “source” una sorgente dati valida e “parameters” un array di parametri.

Appena avrò un attimo di tempo, scriverò un articolo completo sulla preparazione e stampa dei Report in Visual Studio, almeno per quanto appreso nella mia esperienza! 😉

AGGIORNAMENTO della Classe – versione 1.0.1 – 12 ottobre 2011

Dalle statistiche ho notato che il file allegato a questo articolo è stato scaricato numerose volte. Vi chiedo cortesemente, in caso utilizziate il file, di lasciare un commento sulla classe. Impressioni, bug, proposte di miglioramenti (anche effettuati). Grazie!!!

Annunci

, ,

2 commenti