1

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

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

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

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

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

4

2 回答 2

2

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

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

于 2010-04-27T15:45:22.837 回答
1

解决了它:由于 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 访问它,我刚刚完成了在这种情况下帮助其他人的答案。

于 2010-05-28T14:41:33.550 回答