gpt4 book ai didi

c# - ReportViewer - 以编程方式将报告导出到特定位置而不显示保存对话框

转载 作者:行者123 更新时间:2023-11-30 23:19:13 25 4
gpt4 key购买 nike

我目前有一个 Windows 窗体 ReportViewer,它从 SSRS 报告中获取信息。

获取信息后,我可以选择将它们导出为 PDF、Word 或 Excel 文档,为此,首先,我需要保存才能看到文件。

我宁愿采用另一种方式,即将结果导出到特定文件,然后,如果我选择保存文档。

这可能吗?

最佳答案

您可以处理 ReportViewerReportExport 事件并设置 e.Cancel=true; 然后使用 Render 方法其 LocalReportServerReport 属性,将其导出到所需位置。

为 rdlc 报告使用 LocalReport,为 rdl 报告使用 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));
}

注意:另外不要忘记使用设计器或代码将 reportViewer1_ReportExport 附加到 ReportExport,如果您忘记了,您将看到该对话框。

关于c# - ReportViewer - 以编程方式将报告导出到特定位置而不显示保存对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40409033/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com