如何在没有服务器或UI的情况下从嵌入式报表定义生成PDF?

时间:2008-09-26 07:50:37

标签: reporting-services

独立可执行文件是否可以生成报告并将其作为PDF(或报告查看器中提供的其他导出选项之一)输出而不显示ReportViewer控件?

报告定义应嵌入可执行文件中,不应使用Reporting Services Web服务。

3 个答案:

答案 0 :(得分:7)

实际上你根本不需要ReportViewer,你可以直接实例化并使用LocalReport:

LocalReport report = new LocalReport();
report.ReportPath = "templatepath";
// or use file from resource with report.ReportEmbeddedResource

// add parameters, datasource, etc.

Warning[] warnings;
string[] streamids;
string mimeType;
string encoding;
string filenameExtension;

byte[] bytes;
bytes =report.Render("PDF", null, out mimeType, out encoding, out filenameExtension, out streamids, out warnings);

// save byte[] to file with FileStream or something else

答案 1 :(得分:4)

您不必自己显示控件。

ReportViewer rv = new ReportViewer();
rv.LocalReport.ReportPath = "templatepath";
// or use file from resource with rv.LocalReport.ReportEmbeddedResource

// add parameters, datasource, etc.

Warning[] warnings;
string[] streamids;
string mimeType;
string encoding;
string filenameExtension;

byte[] bytes;
bytes = rv.LocalReport.Render("PDF", null, out mimeType, out encoding, out filenameExtension, out streamids, out warnings);

// save byte[] to file with FileStream or something else

但是它只能呈现PDF和XLS(因为ReportViewer控件无法像Reportig Service那样导出到Word和其他人)。

我忘了提到上面的代码是C#,使用.NET框架和ReportViewer控件。查看GotReportViewer快速入门。

答案 2 :(得分:1)

您可以直接将.rdlc报告传递给带参数的pdf吗?我有两个下拉列表,我提取报告。在自动导出为pdf时,我无法使参数生效。这是我得到的错误:Microsoft.ReportingServices.ReportProcessing.ReportProcessingException:尚未指定运行报告所需的一个或多个参数。

当我使用reportviewer时,下拉列表会起作用,但我想跳过此步骤。如果它没有任何参数,我也可以将我的数据直接转到pdf。我的下拉列表被称为ddlyear和ddlmonth。