【问题标题】:Integrating SQL Reporting Service into a C# WebAPI app将 SQL 报告服务集成到 C# WebAPI 应用程序中
【发布时间】:2014-09-18 15:23:02
【问题描述】:

我想将 SQL 报告服务集成到我的 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 使用报表服务器,或者我必须自己构建 SOAP 调用?

【问题讨论】:

    标签: c# sql-server reporting-services


    【解决方案1】:

    如果您不需要完整报告服务器安装的所有“企业”功能,您可以在您的 web api 项目中包含LocalReport。您可以从代码中对其进行实例化、绑定到对象、获取 PDF 的字节并通过您的 Web api 服务将它们发送回。这实际上是我首选的报告方式,它是应用程序的一部分,使用应用程序权限模型而不是 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);
    

    【讨论】:

    • 太好了。我回到 SO 寻求有关如何启动和运行该报表服务器的建议,发现我不需要它。 :)
    • 报告服务提供了很多,只是大部分时间我都不需要它:)
    • 您是否从控制器方法返回字节数组?这是一个 WebAPI 控制器吗?好奇您在响应标头中使用的媒体类型。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-20
    相关资源
    最近更新 更多