将SQL Reporting Service集成到C#WebAPI应用程序中

时间:2014-09-18 15:23:02

标签: c# sql-server reporting-services

我想将SQL Reporting Service集成到我的C#WebAPI应用程序中。我已经读过了

http://msdn.microsoft.com/en-us/library/aa964126%28v=sql.90%29.aspx

http://msdn.microsoft.com/en-us/library/aa964126(v=sql.90).aspx

但是我忽略了相关部分,或者我的问题没有在那里得到解答。

所以,首先:我已经创建了一个rdl文件。调用我的报告API时,我想预处理数据,将其放入sql server,创建PDF报告,将其存储在IIS上,销毁可能留在报告服务器上的所有副本,从sql server中删除数据以及完成。

如何使用C#WebAPI和SQL Report Server执行此操作,还是不可能?

特别是:是否有可以通过SOAP与Report Server一起使用的库,或者我是否必须自己构建SOAP调用?

1 个答案:

答案 0 :(得分:1)

如果您不需要所有" enterprisey"完整的报告服务器安装的功能,您可以在您的web api项目中包含LocalReport。您可以从代码中实例化它,绑定到对象,获取PDF的字节并通过Web api服务将其发回。它实际上是我首选的报告方式,它是应用程序的一部分,使用应用程序permision模型而不是SSRS,使用应用程序部署模型而不是SSRS。对我来说最大的问题是,上次使用它时,导出格式有点受限PDF,Excel和Word。

LocalReport report = new LocalReport();
report.ReportPath = "SomePath";
report.DataSources.Clear();
report.DataSources.Add(new ReportDataSource("SomeDataSourceName", 
        SomeCollectionObject));
report.DataSources.Add(new ReportDataSource("SomeOtherDataSourceName", 
            SomeOtherCollectionObject));
Warning[] warnings;
string[] streamids;
string mimeType, encoding, filenameExtension;
byte[] array = report.Render("PDF", null, out mimeType, out encoding, out filenameExtension, out streamids, out warnings);