Sql server SQL Reporting Services报表查看器的替代方案

Sql server SQL Reporting Services报表查看器的替代方案,sql-server,reporting-services,reportviewer,Sql Server,Reporting Services,Reportviewer,我们希望在MVC3中开发对现有ASP.NET应用程序的升级。我们当前的应用程序仅基于IE,升级将与浏览器无关,即它必须在IE8+、firefox、chrome和safari中工作 我们面临的主要问题是,我们有许多基于SQL Reporting Services 2008 R2的报表,并且我们使用Report Viewer 2010控件 我们真的不想继续使用它,因为: 它有缺陷(例如,我们不能将SP1版本用作HTML) 有时这会破坏我们的网站) 它与非IE浏览器存在问题(例如,浏览器上缺少迭代I

我们希望在MVC3中开发对现有ASP.NET应用程序的升级。我们当前的应用程序仅基于IE,升级将与浏览器无关,即它必须在IE8+、firefox、chrome和safari中工作

我们面临的主要问题是,我们有许多基于SQL Reporting Services 2008 R2的报表,并且我们使用Report Viewer 2010控件

我们真的不想继续使用它,因为:

  • 它有缺陷(例如,我们不能将SP1版本用作HTML) 有时这会破坏我们的网站)
  • 它与非IE浏览器存在问题(例如,浏览器上缺少迭代ID) URL错误)
  • 它基于Viewstate
  • 很难定位控件的某些渲染输出

我真的很想用一个替代品来代替它(即使它是基于viewstate的,而且我们必须用MVC来破解一个解决方案),但我还没有找到一个。是否存在呈现Reporting Services报告的替代控件?我们要替换的是查看器,而不是RS。

我同意你的看法。这真是一个错误的控制。我使用DOCTYPE设置来调整html输出

如果你可以尝试商业的,看看Telerik control

另请看以下讨论:


您可以只查看HTML版本,并将控件设置为由REST URI中的服务绑定。例如:

http:// (servername)/(ReportServer)/(PathtoReport)&(Parameter=Value)&rs:Command=Render
除了在“表单”html对象中托管之外,我从未尝试过其他方法,但我想知道您是否可以使用默认的html浏览器对象并强制REST URI具有条件

如果您真的想在ASP.NET代码中深入了解VB.NET或C#.NET,也可以这样做。也许您可以将Reporting Services的字节数组呈现为一种PDF或HTML类型,然后也将其呈现在查看器中。这可能不是一个可行的解决方案,因为我不确定您是否希望以专有格式呈现二进制对象,而不仅仅是现有调用的web部分。这可能需要更多的工作,并且更适合于您选择的PDF、Excel、HTML等类型的呈现,但这是可以做到的。我基本上做了一个库项目,在从SSRS服务中生成一个代理类之后,用逻辑进行调用。更多信息请参见:

我们想将SSRS与现有网站集成在一起,但不想使用SSRS UI(因为它在很大程度上是自己的网站),也不想使用报表视图控件(尽管我们有一个ASP.NET网站,但报表查看器控件的选项有限,无法满足您的需要)。对我们有效的解决方案是:

  • 调用SSRSWeb服务返回报告列表,并将值放入下拉列表中

  • 从下拉列表中读取报告路径,并获取返回所选报告参数的SSRS Web服务

  • 基于#2中的内容构建输入控件

  • 用户提供输入值并提交表单

  • 该页面将值传递给SSRSWeb服务,并根据用户请求返回PDF、Excel和Word文档

  • 这并不难(编码和测试花费了<40个小时),而且效果非常好。我们面临的最大问题是,当您从一个版本的SSRS移动到另一个版本时,支持不同版本的SSRSWeb服务

    我猜如果您想将报告输出为HTML并将其传送到UI,您也可以这样做


    显然,如果您想让所有用户编辑报表属性、创建订阅等,您还需要做更多的工作

    到目前为止,我还没有为其他人更新我自己的评论,但我一直在研究RS的Web服务引擎。这可能是一个选项。我也正忙于逃离报表查看器。我已经使用WCF服务获得了大部分必需的功能。不过,我面临的唯一问题是处理链接报表。请分享您的经验,因为这是将SSR集成到web应用程序的最重要方面之一。我没有尝试过,但一旦您跟踪到链接报表的API,它似乎很简单:我在尝试通过WPF中的报表查看器执行大量报表时也发现内存泄漏。看见