2008-09-26 7 views
5

Est-il possible qu'un exécutable autonome génère un rapport et le génère en tant que PDF (ou l'une des autres options d'exportation disponibles dans le visualiseur de rapports) sans afficher le contrôle ReportViewer?Comment générer un fichier PDF à partir d'une définition de rapport intégrée sans serveur ni interface utilisateur?

La définition de rapport doit être incorporée dans l'exécutable et ne doit pas utiliser le service Web de Reporting Services.

+0

+1 pour la question exacte que je veux faire. Je ne pouvais pas le trouver en utilisant la recherche de StackOverflow, mais c'était le premier résultat pour "rapport local pdf site: stackoverflow.com" sur Google. – flipdoubt

Répondre

7

En fait, vous n'avez pas besoin d'un ReportViewer du tout, vous pouvez directement instancier et utiliser 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 
4

Vous n'avez pas besoin d'afficher le contrôle lui-même.

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 

Cependant, il peut rendre que PDF et XLS (comme le contrôle ReportViewer ne peut pas exporter vers Word et d'autres en tant que service Reportig peut).

J'ai oublié de mentionner que le code ci-dessus est C#, en utilisant le framework .NET et le contrôle ReportViewer. Découvrez GotReportViewer pour un démarrage rapide.

+2

Pour l'enregistrement, le format utilisé pour rendre Excel est "Excel" plutôt que "XLS". – flipdoubt

1

Pouvez-vous transmettre un rapport .rdlc directement au format PDF avec les paramètres? J'ai deux listes déroulantes avec lesquelles je tire mon rapport. Je ne peux pas obtenir les paramètres pour fonctionner lors de l'exportation automatique en pdf. Voici l'erreur que j'obtiens: Microsoft.ReportingServices.ReportProcessing.ReportProcessingException: Un ou plusieurs paramètres requis pour exécuter le rapport n'ont pas été spécifiés. Les listes déroulantes fonctionnent lorsque j'utilise le compte-rendu, mais je souhaite passer cette étape. Je peux également obtenir mes données pour aller directement à un pdf s'il n'a aucun paramètre. Mes listes déroulantes sont appelées ddlyear et ddlmonth.

Questions connexes