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

时间:2014-04-09 10:15:09

标签: vb.net reporting-services

您能否帮我解决一下如何将自己的代码添加到报告查看器按钮,以便将我的数据直接导出为PDF。

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

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

1 个答案:

答案 0 :(得分:3)

在我认为你有两个选择之后,要实现你的目标:

  • 直接使用Report Server Web服务获取PDF文件所需的输出
  • 使用ReportViewer控件并从中呈现PDF

如果可以使用reportviewer控件可能是更容易维护的选项。根据您的要求,您可能需要混合两种方法的元素。

选项1

请参阅此问题提供的答案,以获得直接访问Web服务的优秀启动器解决方案

Reporting services: Get the PDF of a generated report

选项2

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

Warning[] warnings = null;
string[] streamids = null;
string mimeType = null;
string encoding = null;
string extension = null;
byte[] bytes = null;
bytes = ReportViewer1.ServerReport.Render("PDF", null, mimeType, encoding, extension, streamids, warnings);
System.IO.MemoryStream ms = new System.IO.MemoryStream(bytes);
Response.ContentType = "Application/pdf";
Response.BinaryWrite(ms.ToArray());
Response.End();