7
votes

Exporter C # ReportViewer contrôle par programme

Est-ce que quelqu'un sait si vous pouvez enregistrer programmatiquement un rapport affiché dans un contrôle ReportViewer en C #?

Lorsqu'un rapport est affiché, il existe des boutons "Exporter vers ..." et je voudrais automatiser la fonction d'économie de PDF.


0 commentaires

3 Réponses :


9
votes

Vous pouvez le faire avec ReportViewer Control (avec méthode localReporT.Render ), chèque " Email un rapport "Exemple sur le http://www.gotreportviewer.com/


0 commentaires

3
votes
string _sPathFilePDF = String.Empty;
String v_mimetype;
String v_encoding;
String v_filename_extension;
String[] v_streamids;
Microsoft.Reporting.WinForms.Warning[] warnings;
string _sSuggestedName = String.Empty;

Microsoft.Reporting.WinForms.ReportViewer reportViewer1;
Microsoft.Reporting.WinForms.LocalReport objRDLC = new Microsoft.Reporting.WinForms.LocalReport();
reportViewer1.LocalReport.ReportEmbeddedResource = "reportViewer1.rdlc";
reportViewer1.LocalReport.DisplayName  = _sSuggestedName;

objRDLC.DataSources.Clear();
byte[] byteViewer = rptvFlightPlan.LocalReport.Render("PDF", null, out v_mimetype, out v_encoding, out v_filename_extension, out v_streamids, out warnings);

SaveFileDialog saveFileDialog1 = new SaveFileDialog();

saveFileDialog1.Filter = "*PDF files (*.pdf)|*.pdf";
saveFileDialog1.FilterIndex = 2;
saveFileDialog1.RestoreDirectory = true;
saveFileDialog1.FileName = _sSuggestedName;
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
    {
        FileStream newFile = new FileStream(saveFileDialog1.FileName, FileMode.Create);
        newFile.Write(byteViewer, 0, byteViewer.Length);
        newFile.Close();
    }

1 commentaires

Merci beaucoup. Cela a fonctionné pour moi. Je suis reconnaissant :) Je n'étais même pas conscient que de telles choses pourraient être faites, j'essayais de demander la page de rapport et de pirater le code HTML / JS résultant dans :)



-1
votes

Vous ne pouvez pas exporter vers un événement aussi loin que ReportViewer sur les formulaires Web sont concernés.


0 commentaires