我有一个 PerformancePoint服务器 2007仪表板 SharePoint 2007 页。

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

因此,我需要的是一种JavaScript方法,该方法调用SSRS PRINT按钮,该按钮在一个名为Div上,在WebPartzone内部仅具有一个WebPart,一个PerformancePoint Points仪表板项目(不知道WebPart的确切名称)。

编辑:我注意到该报告(由performancepoint Server webpart显示)在我的SharePoint页面中显示了一个iframe。

edit2:由于我的体系结构,报告服务iframe在另一台服务器上,导致通过JavaScript访问时拒绝访问。因此,我想要的方式不再回答的问题,但是我将尝试直接在报告服务中回答问题,只是为了使问题答案准确。

有帮助吗?

解决方案 2

解决了它:由于SSRS在我的SharePoint的iframe内部,因此我必须在iframe内部查看(这仅在Iframe访问当前已访问的网页的同一服务器时起作用,否则我们将在JavaScript中被拒绝并默默失败)我使用jQuery使事情变得更简单,并使用IE 8来查找节点(因为PerformancePoint Server 2007未出现在Firefox中)

内森(Nathan)的JavaScript帮助了我很多,我已经检查了按钮HTML结构,发现它是一个表格,命名为单击,该表具有称为标题的属性,带有一个名为PRINT的值(请注意firt字母上的大写),所以我写了这个小jQuery javascript解决了这个问题。

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

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

其他提示

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top