我们要求在报告中使用WCF作为数据源。 [服务器模式]
Dot Net 4.0 / SSRS 2008 R2 / ASP.Net 4.0
这背后的想法是在整个应用程序中应用从Reports到标准应用程序网格的通用业务规则。
基本上它可以按照
的方式工作通常情况如下
[RDL - SQL服务器服务器数据提供程序 - 数据库]
但我们需要的是
[RDL - XML /自定义数据提供者 - WCF方法 - 业务层 - - 数据库]
我们的主应用程序也将使用WCF层。 实际上,出于实际目的,它是一个接口层,所以如果我们不得不使用Web服务来代替SSRS,那么可以考虑这种方法是否有优势。
我找到了一些关于我们方法的文章
http://www.codeproject.com/Articles/37270/Consuming-a-WCF-Service-from-an-SSRS-RDL-Server-Re
http://msdn.microsoft.com/en-us/library/ms154655(v=sql.105).aspx
http://devblog.bardoloi.com/2011/09/using-wcf-web-services-as-data-source.html
http://msdn.microsoft.com/en-us/library/aa964129(SQL.90).aspx
无论哪种方式都有限制
http://msdn.microsoft.com/en-us/library/aa964129(SQL.90).aspx#repservxmlds_topic5 这一切都变得有点可怕。
我当然不想做的是沿着某条路走下去然后影响报告设计能力,性能并可能限制可以创建的报告类型。
如果有人对上述布局有任何意见或经验,我将非常感谢您的意见和建议。
我对于如何创建包含数据的报告的可能替代方案非常开放,这些数据通过业务层进行适当的数据按摩等等。
长篇大论道歉。
利安
答案 0 :(得分:3)
我现在正在考虑同样的情况。这个问题被问到已经有一段时间了但是我会为那些对这种情况感兴趣的人添加这个。
到目前为止,不值得努力,让SSRS与我们的WCF服务进行交互需要太长时间并且有一些限制,其中大部分都在您提供的链接中列出。
以下是我正在考虑的两种选择
总而言之,由于没有简单的方法可以解决这个问题,所以我对这个问题非常关注。
希望这对任何人都有帮助!
答案 1 :(得分:2)
这是我们的解决方案,到目前为止我们的工作安静得很好。 虽然涉及很多工作。
Carlos提供的答案中的选项3是我们在遇到通过WCF层为大型报告传输大量数据时遇到的问题时必须采取的方向。
本质上,自定义数据处理扩展会调用WCF层,并且如果返回的数据量很大(超过某个阈值),则会缓存此数据并返回自定义数据处理扩展检索所有数据所需的调用量的指示符。
然后我们拨打所需的电话数量。
因此,对于50万条记录,我们可能需要20次调用WCF,每次调用都会将数据附加到SSRS数据集。
报告查看器显示数据11,000 +页面,但为了导出到Excel,我们需要在SSRS 2012上运行它。
导出> Excel中的500,000条记录可能需要10分钟。打开Excel文件实际上需要更长时间。 :)