我想将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调用?
答案 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);