2010-09-29 3 views
0

J'utilise SQL Server Reporting Services et affiche les rapports dans une application Web dans ASP.NET. Pour afficher les rapports, j'utilise le contrôle Web du visualiseur de rapports qui apporte des fonctionnalités d'exportation et/ou d'impression du rapport, mais nécessite d'afficher un aperçu du rapport avant de l'imprimer.SQL Server Reporting Services: comment imprimer des rapports automatiquement sans prévisualisation à partir d'une application Web

J'ai besoin d'imprimer un rapport sans faire un aperçu dans la page Web? Il semble qu'il y ait un moyen de le faire dans WinForms, mais je n'ai pas trouvé le moyen de le faire dans WebForms. Des idées?

Merci David

Répondre

0

Je ne pense pas que ce soit possible. Le WebViews ReportViewer de SSRS est assez rigide.

Ce qui est encore pire: La fonction d'impression n'existe que dans IE, pas dans les autres navigateurs. Les utilisateurs de Firefox, Safari, Chrome et Opera doivent télécharger le fichier en format PDF ou Word et imprimer à partir de là.

0

J'ai rendu des rapports SSRS sans utiliser le contrôle ReportViewer, plus récemment en utilisant LocalReports. Vous pouvez configurer le ReportViewer en code, le forcer à générer un PDF et récupérer le flux d'octets du PDF. Je me suis arrêté là et ai rendu le PDF à l'écran b/c qui était mon ensemble d'exigences, mais je suis sûr qu'il est beaucoup plus facile de trouver un moyen d'imprimer un flux d'octets d'un fichier PDF, il est de traiter avec ReportViewer.

Voici comment obtenir le LocalReport à un tableau d'octets d'un fichier PDF:

LocalReport lclRpt = new LocalReport(); 
//Do Stuff like bind DataSources, ReportParameters, SubReportProcessing Delegates, etc. 
string strMIMEType = String.Empty; 
string strEncoding = String.Empty; 
string strFileNameExtension = string.Empty; 
string[] strarrStreams; 
Warning[] warnLocalReportWarnings; 
byte[] bytarrPDF = lclRpt.Render("PDF", "<DeviceInfo><StartPage>0</StartPage></DeviceInfo>", out strMIMEType, out strEncoding, out strFileNameExtension, out strarrStreams, out warnLocalReportWarnings); 
return bytarrPDF; 

Je ne suis pas à 100% sur la façon d'accomplir la dernière étape, peut-être besoin d'un utilitaire .pdf ou il pourrait y avoir être un moyen de le faire directement à partir du code.

Questions connexes