所以,这是我的删除。
标题说明了一切。我似乎无法找到有关如何远程执行SSRS报告并将其另存为PDF的任何指导。
我试过按照下面的文章。 Using Reporting Services (SSRS) as a reference in an ASP.NET Core site
但是,当我将服务引用添加到我的项目时,某些方法似乎有错误的签名。
例如。 rsExec.LoadReportAsync(report,null);
在我的引用中,第一个参数是TrustedUserHeader对象。
有没有人有一个很好的起点如何从C#执行SSRS报告?我找不到任何简单的例子。
答案 0 :(得分:5)
我是通过使用Microsoft.Reporting.Webforms和以下方法来完成的:
using Microsoft.Reporting.WebForms;
...
public byte[] ExportToExcel(string reportName, string[] paramNames, string[][] paramDic)
{
// Variables
Warning[] warnings;
string[] streamIds;
string mimeType;
string encoding;
string extension;
ReportViewer rv = new ReportViewer { ProcessingMode = ProcessingMode.Remote };
rv.AsyncRendering = false;
ServerReport sr = rv.ServerReport;
sr.ReportServerUrl = new Uri("http://<server>/reportserver");
sr.ReportPath = "/<report path>/" + reportName;
if (paramNames.Length != 0)
{
List<ReportParameter> paramList = paramNames.Select((t, i) => new ReportParameter(t, paramDic[i])).ToList();
rv.ServerReport.SetParameters(paramList);
}
return rv.ServerReport.Render("Excel", null, out mimeType, out encoding, out extension,
out streamIds, out warnings);
}
然后byte
数组可以通过Response
发送到客户端,或保存到文件中以便稍后通过电子邮件发送/传输。
第一个参数是报告的名称,第二个参数是参数名称数组,第三个参数是包含参数值的数组。我在职业生涯的早期就写过这种方法,现在我不会这样写。如果你使用这个,我会重构代码以获取两个参数:reportName和一个名为参数的字典或类似的东西来管理参数值。