1

SharePoint 2007ページ にPerformancePoint Server 2007 ダッシュボードがあります。

私のSharepointページには、レポートに渡される2つのフィルターがあり、このレポートをページに印刷する必要があります(SSRSボタンではなく別のボタンに)。

したがって、私が必要とするのは、名前付き DIV にある SSRS 印刷ボタンを呼び出す JavaScript メソッドです。WebPartZone 内には、WebPart、PerformancePoint ダッシュボード アイテムが 1 つしかありません (Web パーツの正確な名前はわかりません)。

編集: PerformancePoint Server Web パーツによって表示されるレポートが、Sharepoint ページの IFrame によって表示されていることに気付きました。

Edit2: 私のアーキテクチャにより、レポート サービスの Iframe が別のサーバー上にあるため、javascript を介してアクセスするとアクセスが拒否されます。したがって、私が望んでいた方法での質問にはもう回答できませんが、質問の回答を正確に保つために、レポート サービス内で直接質問に回答しようとします。

4

2 に答える 2

2

印刷ボタンの onclick イベントは ですdocument.getElementById('ReportViewerControl').ClientController.LoadPrintControl();return false;が、レポート ビューアー以外の別のリンクに追加するだけでは失敗しました。1 ページに複数のレポートを表示でき、それぞれに 1 つの印刷ボタンがあるため、これは理にかなっています。

印刷ボタンを強制的にクリックしてみてはいかがでしょうか。
document.getElementById('ReportViewerControl_ctl01_ctl07_ctl00_ctl00').onclick();
とにかく、私の文書では。

于 2010-04-27T15:45:22.837 に答える
1

解決: SSRS は私の Sharepoint の Iframe 内にあったため、Iframe 内を調べる必要がありました (これは、Iframe が現在アクセスしている Web ページの同じサーバーにアクセスする場合にのみ機能します。そうしないと、javascript でアクセスが拒否され、サイレントに失敗します) JQuery を使用して作業を簡素化し、IE 8 を使用してノードを検索しました (PerformancePoint Server 2007 は Firefox に表示されないため)。

Nathan の JavaScript は私を大いに助けてくれました。ボタンの html 構造をチェックしたところ、クリックを処理するテーブルであり、テーブルには print という値を持つ title という属性があることがわかりました (最初の文字の大文字に注意してください)。これを解決するには、この小さな JQuery Javascript を使用します。

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

私の場合、SSRSは別のサーバーでホストされているため、javascriptからアクセスできないため、これは役に立たないことを思い出してください。この状況で他の人を助けるための回答を完成させました。

于 2010-05-28T14:41:33.550 に答える