【问题标题】:Alternative to Report Viewer for SQL Reporting ServicesSQL Reporting Services 的报表查看器的替代方案
【发布时间】:2011-11-07 19:50:41
【问题描述】:

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

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

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

  • 有问题(例如,我们不能使用 SP1 版本来呈现 HTML 有时会破坏我们的网站)
  • 非 IE 浏览器存在问题(例如 IterationId 在 网址错误)
  • 它基于 Viewstate
  • 很难对控件的某些渲染输出进行本地化

我真的很想用另一种方法替换它(即使它基于视图状态并且我们必须使用 MVC 破解解决方案),但我一直找不到。是否存在呈现 Reporting Services 报告的替代控件?我们要替换的是查看器,而不是 RS。

【问题讨论】:

  • 为其他人更新我自己的评论 到目前为止,还没有找到适用于 MVC 的评论,但一直在研究适用于 RS 的 Web 服务引擎。这可能是一种选择。
  • 我也正忙于逃避报告查看器。我已经设法使用 WCF 服务获得了大部分所需的功能。我面临的唯一问题是处理链接报告。请分享您的经验,因为这是将 SSRS 集成到 Web 应用程序的最重要方面之一。
  • 我没有尝试过,但是一旦你找到链接报告的 API,它似乎很简单:msdn.microsoft.com/en-us/library/ms152864.aspx

标签: sql-server reporting-services reportviewer


【解决方案1】:

我们希望将 SSRS 与现有网站集成,但不想使用 SSRS UI(因为它是它自己的网站)并且我们不想使用报表视图控件(尽管我们有一个 ASP. NET 网站,报表查看器控件的选项有限,无法满足您的需求)。对我们有用的解决方案是:

  1. 调用 SSRS Web 服务以返回报告列表,并将值放入下拉列表中。

  2. 从下拉列表中读取报表路径,获取返回所选报表参数的SSRS Web Service。

  3. 根据 #2 中返回的内容构建输入控件。

  4. 用户提供输入值并提交表单。

  5. 页面将值传递给 SSRS Web 服务,并根据用户请求返回 PDF、Excel、Word 文档。

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

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

显然,如果您希望所有用户都编辑报告属性、创建订阅等,您将需要做更多的工作。

【讨论】:

    【解决方案2】:

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

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

    也看看这个讨论:

    http://siddhumehta.blogspot.com/2011/07/ssrs-reportviewer-webpart-control.html

    【讨论】:

    【解决方案3】:

    您可以只查看 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 服务中创建代理类之后进行调用。更多关于这里: Programmatically Export SSRS report from sharepoint using ReportService2010.asmx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-25
      • 1970-01-01
      • 1970-01-01
      • 2010-09-06
      • 1970-01-01
      相关资源
      最近更新 更多