Come generare un PDF da una definizione di report incorporata senza server o interfaccia utente?

StackOverflow https://stackoverflow.com/questions/138203

  •  02-07-2019
  •  | 
  •  

Domanda

È possibile che un eseguibile autonomo generi un report e lo produca in formato PDF (o una delle altre opzioni di esportazione disponibili dal visualizzatore di report) senza visualizzare il controllo ReportViewer?

La definizione del report deve essere incorporata nell'eseguibile e non deve utilizzare il servizio Web di Reporting Services.

È stato utile?

Soluzione

In realtà non hai bisogno di un ReportViewer, puoi istanziare direttamente e utilizzare un LocalReport:

LocalReport report = new LocalReport();
report.ReportPath = "templatepath";
// or use file from resource with report.ReportEmbeddedResource

// add parameters, datasource, etc.

Warning[] warnings;
string[] streamids;
string mimeType;
string encoding;
string filenameExtension;

byte[] bytes;
bytes =report.Render("PDF", null, out mimeType, out encoding, out filenameExtension, out streamids, out warnings);

// save byte[] to file with FileStream or something else

Altri suggerimenti

Non è necessario mostrare il controllo stesso.

ReportViewer rv = new ReportViewer();
rv.LocalReport.ReportPath = "templatepath";
// or use file from resource with rv.LocalReport.ReportEmbeddedResource

// add parameters, datasource, etc.

Warning[] warnings;
string[] streamids;
string mimeType;
string encoding;
string filenameExtension;

byte[] bytes;
bytes = rv.LocalReport.Render("PDF", null, out mimeType, out encoding, out filenameExtension, out streamids, out warnings);

// save byte[] to file with FileStream or something else

Tuttavia può eseguire il rendering solo di PDF e XLS (poiché il controllo ReportViewer non può esportare in Word e altri come può fare il servizio Reportig).

Ho dimenticato di menzionare che il codice sopra è C #, usando .NET framework e il controllo ReportViewer. Dai un'occhiata a GotReportViewer per una guida rapida.

Puoi passare un rapporto .rdlc direttamente in pdf con parametri? Ho due elenchi a discesa con cui estraggo il mio rapporto. Non riesco a far funzionare i parametri durante l'esportazione automatica in pdf. Ecco l'errore che visualizzo: Microsoft.ReportingServices.ReportProcessing.ReportProcessingException: uno o più parametri richiesti per eseguire il rapporto non sono stati specificati.

Le liste a discesa funzionano quando uso il reportviewer, ma voglio saltare questo passaggio. Posso anche ottenere i miei dati per andare direttamente a un pdf se non ha parametri. Le mie liste a discesa si chiamano ddlyear e ddlmonth.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top