如何在vb.net中单击报表查看器的“查看报表”按钮导出为PDF

如何在vb.net中单击报表查看器的“查看报表”按钮导出为PDF,vb.net,reporting-services,Vb.net,Reporting Services,您能帮助我如何将我自己的代码添加到报表查看器按钮,以便它将我的数据直接导出为PDF格式吗 我在下面的一个帖子中得到了答案,我想知道如何做到这一点 您可以创建自己的自定义报表查看控件。控件将由报告参数字段和生成报告的按钮组成。当用户单击按钮时,您可以在后台生成报告。您可以将报告显示为PDF格式。要实现您的目标,我认为您有两个选择: 直接使用报表服务器webservice获取PDF文件所需的输出 使用ReportViewer控件并从中呈现PDF 如果可以,使用reportviewer控件可能是更

您能帮助我如何将我自己的代码添加到报表查看器按钮,以便它将我的数据直接导出为PDF格式吗

我在下面的一个帖子中得到了答案,我想知道如何做到这一点


您可以创建自己的自定义报表查看控件。控件将由报告参数字段和生成报告的按钮组成。当用户单击按钮时,您可以在后台生成报告。您可以将报告显示为PDF格式。

要实现您的目标,我认为您有两个选择:

  • 直接使用报表服务器webservice获取PDF文件所需的输出
  • 使用ReportViewer控件并从中呈现PDF
如果可以,使用reportviewer控件可能是更容易维护的选项。根据您的需求,您可能需要混合这两种方法的元素

选项1

有关直接访问web服务的入门解决方案,请参阅此问题的答案

选项2

将ReportViewer控件的输出呈现为PDF只需将ReportViewer输出呈现为字节数组,然后将其发送到MemoryStream对象并写入输出流。下面的示例代码将获取报表查看器控件中当前配置的报表,并直接在当前网页中生成PDF:

Warning[]warnings=null;
字符串[]streamids=null;
字符串mimeType=null;
字符串编码=空;
字符串扩展名=null;
字节[]字节=null;
bytes=ReportViewer1.ServerReport.Render(“PDF”、null、mimeType、编码、扩展名、流ID、警告);
System.IO.MemoryStream ms=新的System.IO.MemoryStream(字节);
Response.ContentType=“Application/pdf”;
Response.BinaryWrite(ms.ToArray());
Response.End();

您也可以使用指定渲染格式的链接。例如:将报告呈现为PDF格式。因此,如果您添加指向该url的链接或链接按钮,以便用户以PDF格式访问报告。