【问题标题】:Printing Reporting Services in a page throught Javascript通过 Javascript 在页面中打印 Reporting Services
【发布时间】:2010-04-26 21:12:00
【问题描述】:

我在 Sharepoint 2007 页面中有一个 PerformancePoint Server 2007 仪表板。

在我的 Sharepoint 页面中,有 2 个过滤器被传递给报告,我需要在页面中打印此报告(在另一个按钮中,而不是 SSRS 按钮中)。

所以我需要的是一个调用 SSRS 打印按钮的 javascript 方法,该按钮位于一个名为 DIV 的 WebPartZone 内,只有一个 WebPart,一个 PerformancePoint 仪表板项(不知道 Web 部件的确切名称) .

编辑: 我注意到由 PerformancePoint Server webpart 显示的报告正在由我的 Sharepoint 页面中的 IFrame 显示。

编辑2: 由于我的架构,报告服务 Iframe 位于另一台服务器上,导致通过 javascript 访问时拒绝访问。 所以我想要的问题不再可以回答了,但是我会尝试直接在报告服务中回答问题,只是为了保持问题答案的准确性。

【问题讨论】:

    标签: javascript reporting-services sharepoint-2007 printing performancepoint


    【解决方案1】:

    打印按钮的 onclick 事件是 document.getElementById('ReportViewerControl').ClientController.LoadPrintControl();return false;,但是我只是将它添加到报表查看器之外的另一个链接中没有成功。这是有道理的,因为您可以在一个页面上拥有多个报告,并且每个报告都有一个打印按钮。

    也许您可以尝试强制单击打印按钮?
    document.getElementById('ReportViewerControl_ctl01_ctl07_ctl00_ctl00').onclick();
    无论如何,在我的文档中。

    【讨论】:

    • 顺便说一下,报告是由 PerformancePoint Server webpart 显示的,但我知道它托管在 IFrame 中。但是如果我的 SSRS 服务器在另一台机器上,我不会进入跨域 js 调用问题吗?
    • 我在报表查看器上进行了测试,因为性能点 webpart 没有在 Firefox 中显示,所以我无法测试。对此感到抱歉。
    【解决方案2】:

    解决了: 由于 SSRS 在我的 Sharepoint 的 iframe 中,我不得不查看 iframe 的内部 (这仅在 iframe 访问当前访问的网页的同一服务器时有效,否则我们将在 javascript 中获得访问被拒绝并静默失败) 我使用 JQuery 让事情变得更简单,并使用 IE 8 来查找节点(因为 PerformancePoint Server 2007 没有出现在 Firefox 中)

    Nathan 的 javascript 帮助了我很多,我检查了按钮的 html 结构,发现它是一个处理点击的表格,并且该表格有一个名为 title 的属性,其值为 Print(注意第一个字母上的大写字母),所以我写了这个小 JQuery Javascript 来解决这个问题。

    $('iframe').contents().find('table[title="Print"]').click();
    

    记住这对我没有帮助,因为在我的情况下,SSRS 托管在另一台服务器上,因此无法通过 javascript 访问它,我刚刚完成了在这种情况下帮助其他人的答案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多