我目前有一个Windows窗体ReportViewer
,用于从SSRS
报告中提取信息。
获取信息后,我可以选择将它们导出为PDF,Word或Excel文档,为此,首先,我需要保存才能看到该文件。
我宁愿以另一种方式使用它,即将结果导出到特定文件,然后保存文档,如果这是我的选择。
这可能吗?
答案 0 :(得分:2)
您可以处理Text2File
的{{1}}事件并设置ReportExport
然后使用其ReportViewer
或e.Cancel=true;
属性的Render
方法,将其导出到了理想的位置。
将LocalReport
用于rdlc报告,将ServerReport
用于rdl报告。在下面的代码中,我决定使用LocalReport
的值来使用属性。
这样,当用户点击ServerReport
按钮中的一个可用选项时,报告将导出为您在代码中设置的位置的指定格式:
ProcessingMode
注意:也不要忘记使用设计师或代码将Export
附加到private void reportViewer1_ReportExport(object sender,
Microsoft.Reporting.WinForms.ReportExportEventArgs e)
{
e.Cancel = true;
string mimeType;
string encoding;
string fileNameExtension;
string[] streams;
Microsoft.Reporting.WinForms.Warning[] warnings;
Microsoft.Reporting.WinForms.Report report;
if (reportViewer1.ProcessingMode == Microsoft.Reporting.WinForms.ProcessingMode.Local)
report = reportViewer1.LocalReport;
else
report = reportViewer1.ServerReport;
var bytes = report.Render(e.Extension.Name, e.DeviceInfo,
Microsoft.Reporting.WinForms.PageCountMode.Actual, out mimeType,
out encoding, out fileNameExtension, out streams, out warnings);
var path = string.Format(@"d:\file.{0}", fileNameExtension);
System.IO.File.WriteAllBytes(path, bytes);
MessageBox.Show(string.Format("Exported to {0}", path));
}
,如果您忘记了会看到对话框。