这个问题有两个部分。第1部分:如何以编程方式运行reportviewer和第2部分:如何以编程方式将html导出为reportviewer。
第1部分:.rdl托管在远程服务器上,我需要运行此报告,就好像用户点击了"查看结果"但是以编程方式。我给它提供了正确的报告网址,路径和参数,但是当我导出它时,我似乎遗漏了一些原因,结果是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);
如果问的不多,请在答案中添加一些解释。我还不熟悉报道,我想了解它为什么不起作用。
答案 0 :(得分:0)
我设法解决了这个问题。我的代码是正确的,即使我传递了所需的参数,报告本身并没有真正使用参数。