Печать служб отчетов на странице через Javascript

У меня есть панель мониторинга PerformancePoint Server 2007 на странице Sharepoint 2007.

На моей странице Sharepoint есть 2 фильтра, которые передаются в отчет, и мне нужно распечатать этот отчет на странице (другой кнопкой, а не SSRS).

Так что мне нужен метод javascript, который вызывает кнопку печати SSRS, которая находится в именованном DIV, внутри WebPartZone, в котором есть только одна веб-часть, элемент панели мониторинга PerformancePoint (не знаю точного имени веб-части).

Изменить. Я заметил, что отчет, отображаемый веб-частью сервера PerformancePoint, отображается с помощью IFrame на моей странице Sharepoint.

Edit2: из-за моей архитектуры службы отчетов Iframe находятся на другом сервере, что приводит к отказу в доступе при доступе через JavaScript. Таким образом, вопрос в том виде, в котором я хотел, больше не отвечает, однако я постараюсь ответить на вопрос непосредственно в службах отчетности, просто чтобы обеспечить точный ответ на вопрос.

2 ответа

Решение

Решено: так как SSRS был внутри Iframe моего Sharepoint, мне пришлось заглянуть внутрь Iframe (это работает только тогда, когда Iframe получает доступ к тому же серверу веб-страницы, к которой в данный момент осуществляется доступ, иначе мы получим отказ в доступе в javascript и произойдем сбой без вывода сообщений) Я использовал JQuery для упрощения и использовал IE 8 для поиска узлов (поскольку PerformancePoint Server 2007 не отображается в Firefox)

Javascript Нейтана мне очень помог, я проверил html структуру кнопки и обнаружил, что это таблица, которая обрабатывает щелчок, и у таблицы есть атрибут с названием title со значением Print (обратите внимание на верхний регистр на первой букве), поэтому я написал этот маленький 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();
во всяком случае, в моем документе.

Другие вопросы по тегам