我正在研究在内存中生成SSRS报告以作为邮件附件之后附加的解决方案。我正在使用2010版本。在内存中生成SSRS报告
报告需要填充参数以使报告正确。
我发现了几个解决方案是如何做到这一点:
解决方案1
使用MS原生ReportViewer
类。我们可以在内存中实例化对象,连接到服务器,并使用控制API
report.ServerReport.ReportServerCredentials = new MyCredentials(...);
report.ServerReport.ReportServerUrl = new Uri("ssrs_url");
report.ServerReport.ReportPath = "path-to-report";
byte[] reportData = report.ServerReport.Render("excel");
该解决方案已经主要缺点渲染所需的格式报告 - 它需要显著相关性集合使用报告控制。所以很难在分层体系结构中使用,当较低层具有有限和预定义的一组依赖关系时,它们可以松散耦合,并且可以轻松移植到大范围的OS和云栈中。
所以不能采用这种解决方案在我的情况
解决方案2
使用报表服务器的公共API已经访问所需格式的数据。我发现这可以实现,MS确认这一点。这里是链接https://msdn.microsoft.com/en-us/library/ms154040.aspx
因此,我们可以只使用权配置的链路来访问数据:http://myrshost/ReportServer?/myreport&rs:Format=PDF
此解决方案最适合我的需要,但我不知道如何传递报表参数这份报告?还有如何首先针对SSRS报告服务器进行身份验证?
有人可以帮助我吗?
是否正在使用ReportingServices webservice选项?根据您的SSRS版本(您可能会将其包含在您的文章中),您可以在此处找到服务asmx:http:// myrshost:80/ReportServer/ReportExecution2005.asmx。 –
是的,我有所有需要的数据。如何将数据传递给特定的报告参数。我需要在渲染报告前填写属性 – VadimB
现在预约,稍后会回来(如果没有其他人更快;))同时查看MSDN的服务。 https://msdn.microsoft.com/en-us/library/ms152787.aspx –