【发布时间】:2015-08-28 16:06:06
【问题描述】:
这个问题有两个部分。第 1 部分:如何以编程方式运行报表查看器和第 2 部分:如何以编程方式将报表查看器导出为 html。
第 1 部分:.rdl 托管在远程服务器上,我需要像用户单击“查看结果”一样运行此报告,但以编程方式。我为它提供了正确的报告 url、路径和参数,但是当我导出它时,我似乎遗漏了一些东西,结果为 0,这意味着它没有运行。我很确定我错过了什么,但我不知道它是什么。
第 2 部分:我在 VS12 上运行。我读过你不能在 VS10 中导出到 HTML,但在 VS12 中你可以,但结果全错了。该报告有几个带有彩色填充单元格的表格。即使数据以表格格式对齐,单元格也不会着色。我让它以 pdf 格式工作,但数据是第 1 部分的空原因。我希望它采用 html 格式,因为我计划将此导出放在电子邮件的正文中。
这是我目前得到的:
report.ServerReport.ReportPath = reportPath;
//Assign parameters
var parameters = new List<ReportParameter>();
parameters.Add(new ReportParameter("Param1", param1));
parameters.Add(new ReportParameter("Param2", param2));
//Execute report
report.ServerReport.SetParameters(parameters.ToArray());
string mimeType,
encoding,
fileNameExtension;
Warning[] warnings;
string[] streamIds;
//Export report
byte[] exportBytes = report.ServerReport.Render("HTML4.0", null, out mimeType, out encoding,
out fileNameExtension, out streamIds, out warnings);
//For pdf format
//HttpContext.Current.Response.Buffer = true;
//HttpContext.Current.Response.Clear();
//HttpContext.Current.Response.ContentType = mimeType;
//HttpContext.Current.Response.AddHeader("content-disposition", "attachment; filename=ExportedReport." + fileNameExtension);
//HttpContext.Current.Response.BinaryWrite(exportBytes);
//HttpContext.Current.Response.Flush();
//HttpContext.Current.Response.End();
var exportHtml = System.Text.Encoding.UTF8.GetString(exportBytes);
如果要问的不多,请在您的答案中添加一些解释。我还是报告新手,我想了解它为什么不起作用。
【问题讨论】:
-
您的 SSRS 版本 2012 或 2008 是什么?
-
@MichaelRudnerEvanchik 如果问题有点令人困惑,我深表歉意。我不需要显示它我只想运行它并导出结果。
-
这可能吗?
标签: c# asp.net visual-studio-2012 reportviewer