Report Viewer, report locali, render diretto

Published 19 febbraio 09 12.06 | abenedetti

Il controllo report viewer, come ho già scritto qui, consente la visualizzazione di report, in modalità locale, prelevando dati da un proprio oggetto.

La domanda potrebbe nascere spontanea: visto che il controllo mi permette il salvataggio in formato excel e/o pdf, ho modo di ottenere direttamente il report in uno di questi formati senza passare dal visualizzatore (ovvero senza che sia l’utente a dover scegliere il save)?

Si, tramite l’oggetto LocalReport ed il suo metodo Render.

Ovvero scrivendo qualcosa come:

string reportPath = @"C:\cartellaReport\mioReport.rdlc"; var report = new LocalReport(); report.ReportPath = reportPath; Warning[] warnings; string[] streamids; string mimeType; string encoding; string filenameExtension; byte[] bytes = report.Render("PDF", null, out mimeType, out encoding, out filenameExtension, out streamids, out warnings); salvaReport(bytes);

 

Dove il metodo “salvaReport” va, semplicemente, a scrivere lo stream di byte su file:

private void salvaReport(byte[] reportStream) { var stream = File.Create(@"c:\temp\____report.pdf"); stream.Write(reportStream, 0, reportStream.Length); stream.Close(); }

Comments

No Comments

This Blog

Syndication