C# の reportviewer コントロールに表示されるレポートをプログラムで保存できるかどうかは誰にもわかりませんか?
レポートが表示されると、[エクスポート先...] ボタンが表示され、PDF への保存機能を自動化したいと考えています。
C# の reportviewer コントロールに表示されるレポートをプログラムで保存できるかどうかは誰にもわかりませんか?
レポートが表示されると、[エクスポート先...] ボタンが表示され、PDF への保存機能を自動化したいと考えています。
ReportViewer コントロール( LocalReport.Render Methodを使用) を使用してこれを行うことができます。http://www.gotreportviewer.com/で「レポートを電子メールで送信する」の例を確認してください。
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();
}