Использование элемента управления RSClientPrint в пользовательских приложениях
Элемент управления Microsoft ActiveX RSPrintClient обеспечивает работу функций печати отчетов в средстве просмотра HTML-страниц на стороне клиента. Он отображает диалоговое окно Печать, в котором просматривается отчет, указываются номера и изменяются поля печатаемых страниц, а также запускается задание на печать. При выполнении операции печати на стороне клиента сервер отчетов подготавливает отчет с помощью модуля подготовки отчетов в графическом формате (EMF), создает задание на печать и отправляет его на принтер с помощью средств операционной системы.
Печать на стороне клиента повышает управляемость и качество печати для отчетов в формате HTML. Это происходит благодаря применению размеров страниц, полей и колонтитулов, заданных в самом отчете, а не параметров печати в обозревателе на компьютере пользователя. То есть элемент управления считывает значения размера страниц и полей из свойств отчета.
Разработчики могут воспользоваться функцией печати на стороне клиента на панелях инструментов или программах просмотра сторонней разработки с помощью элемента управления ActiveX через COM-объект RSClientPrint. Он распространяется бесплатно. При работе с этим элементом следуйте приведенным ниже рекомендациям.
Элемент управления позволяет усовершенствовать функции печати веб-отчетов. Объект можно указать в любом из языков программирования, совместимых с Microsoft.NET Framework, либо в сценарии. Данный элемент управления не предназначен для приложений Microsoft Windows Forms.
Скопируйте файл c расширением CAB из программных файлов служб Reporting Services в базу кода нужного приложения.
Элемент управления задается с помощью тега <OBJECT>.
В формате URL-адреса укажите относительный или полный путь к файлу c расширением CAB в атрибуте CODEBASE тега OBJECT.
Укажите сведения о версии приложения для файла c расширением CAB, чтобы отследить версию, которая используется в приложении.
Чтобы понять, каким образом страницы готовятся к предварительному просмотру и выводу, ознакомьтесь с разделами электронной документации, посвященными подготовке отчетов в графическом формате (EMF).
Обзор RSPrintClient
Данный элемент управления отображает пользовательское диалоговое окно печати, в котором поддерживаются все стандартные функции: предварительный просмотр, указание отдельных страниц и их диапазонов, поля и ориентация страниц. Он упакован в файл c расширением CAB. Текст в диалоговом окне Печать локализован для всех языков, поддерживаемых в SQL Server. Элемент управления ActiveX RSPrintClient для печати отчета использует модуль подготовки отчетов в графическом формате (EMF). Применяются следующие параметры EMF: StartPage, EndPage, MarginBottom, MarginLeft, MarginTop, MarginRight, PageHeight и PageWidth. Другие информационные параметры устройства для подготовки изображений к просмотру не поддерживаются.
Языковая поддержка
Элемент печати выводит текст пользовательского интерфейса на разных языках и принимает вводимые значения в разных единицах измерения. Язык и единицы измерения определяются свойствами Culture и UICulture. Оба свойства принимают значения кода языка. Если указан код языка, который является вариантом поддерживаемого языка, то будет выбран тот язык, который ближе всего к указанному. Если указан код языка, который не поддерживается, и похожий язык отсутствует, то будет использоваться английский язык (США).
Использование RSPrintClient в коде
Объект RSClientPrint обеспечивает программный доступ к элементу управления ActiveX, а также к его методам и свойствам. Элемент управления выводит модальное диалоговое окно предварительного просмотра.
Настройка значений по умолчанию
В диалоговом окне Печать можно указать размеры страниц и полей. По умолчанию диалоговое окно Печать инициализируется со значениями, взятыми из определения отчета. Можно либо оставить эти значения, либо указать другие путем настройки свойств объекта.
Все размеры указываются в миллиметрах. Преобразование единиц измерения происходит во время выполнения, если для свойств Culture и UICulture заданы языковые стандарты, в которых используется система мер, отличная от метрической.
Значения, с помощью которых задаются размеры страниц и поля, можно получить с помощью метода GetProperties, который выводит соответствующие значения по умолчанию.
Параметры PageHeight и PageWidth задают высоту и ширину страниц по умолчанию. При запуске элемента печати на основе значений этих свойств выбирается ближайший размер страницы, доступный для текущего выбранного устройства печати. Если значение PageWidth больше значения PageHeight, то выбирается альбомная ориентация страницы, в противном случае выбирается книжная.
Свойства LeftMargin, RightMargin, TopMargin и BottomMargin по умолчанию имеют значение 11,2 миллиметра.
Эти свойства хранятся на сервере отчетов в коллекции свойств Item и перезаписываются при каждом обновлении определения отчета.
Свойства RSPrintClient
Свойство |
Тип |
RW |
По умолчанию |
Описание |
---|---|---|---|---|
MarginLeft |
Двойной |
RW |
Параметры отчета |
Возвращает или задает левое поле. Значение по умолчанию — 12,2 мм (если оно не задано разработчиком или не указано в отчете). |
MarginRight |
Двойной |
RW |
Параметры отчета |
Возвращает или задает правое поле. Значение по умолчанию — 12,2 мм (если оно не задано разработчиком или не указано в отчете). |
MarginTop |
Двойной |
RW |
Параметры отчета |
Возвращает или задает верхнее поле. Значение по умолчанию — 12,2 мм (если оно не задано разработчиком или не указано в отчете). |
MarginBottom |
Двойной |
RW |
Параметры отчета |
Возвращает или задает нижнее поле. Значение по умолчанию — 12,2 мм (если оно не задано разработчиком или не указано в отчете). |
PageWidth |
Двойной |
RW |
Параметры отчета |
Возвращает или задает ширину страницы. Значение по умолчанию — 215,9 мм (если оно не задано разработчиком или не указано в определении отчета). |
PageHeight |
Двойной |
RW |
Параметры отчета |
Возвращает или задает высоту страницы. Значение по умолчанию — 279,4 мм (если оно не задано разработчиком или не указано в определении отчета). |
Culture |
Int32 |
RW |
Языковой стандарт обозревателя |
Указывает идентификатор языкового стандарта (код языка). Это значение определяет единицы измерения для вводимых пользователем значений. Например, если пользователь вводит значение 3, то оно измеряется в миллиметрах для французского языка или в дюймах, если выбран английский язык (США). Допустимые значения: 1028, 1031, 1033, 1036, 1040, 1041, 1042, 2052, 3082. |
UICulture |
String |
RW |
Client culture |
Определяет локализацию текста в диалоговом окне. Текст в диалоговом окне «Печать» локализуется для следующих языков: китайский упрощенный, китайский традиционный, английский, французский, немецкий, итальянский, японский, корейский и испанский. Допустимые значения: 1028, 1031, 1033, 1036, 1040, 1041, 1042, 2052, 3082. |
Authenticate |
Boolean |
RW |
False |
Указывает способность элемента управления вызывать с помощью команды GET сервер отчетов, чтобы открыть соединение для внесеансовой печати. |
Случаи, в которых необходимо задавать свойство Authenticate
При печати из сеанса обозревателя свойство Authenticate задавать не надо. В контексте активного сеанса все запросы элемента управления к серверу отчетов выполняются через обозреватель. Последний устанавливает переменные сеанса, необходимые для обмена данными с сервером отчетов.
При внесеансовой печати (например, при отправке отчета непосредственно на принтер без его открытия) элемент печати должен выдать HTTP-запрос GET для открытия сеанса на сервере отчетов. Чтобы выполнить запрос GET, свойству Authenticate следует задать значение True.
Запрос GET необходим только в режиме встроенной безопасности или обычной проверки подлинности Windows. При проверке подлинности с помощью форм свойство Authenticate не используется. Код приложения должен установить сеанс и выполнить проверку подлинности пользователя через пользовательский модуль безопасности. Если используется проверка подлинности с помощью форм, задайте в файле «cookie» приемлемый срок действия сеанса. Если это значение слишком мало, то у пользователя каждый раз после истечения срока действия сеанса будут запрашиваться учетные данные.
Метод Print RSPrintClient
Объект RSClientPrint поддерживает метод Print, который предназначен для вызова диалогового окна «Печать». Аргументы метода Print:
Аргумент |
Ввод-вывод |
Тип |
Описание |
---|---|---|---|
ServerPath |
In |
String |
Указывает виртуальный каталог сервера отчетов (например, https://adventure-works/reportserver). |
ReportPathParameters |
In |
String |
Указывает полное имя отчета в пространстве имен папок сервера отчетов, включая аргументы. Получение отчетов производится через URL-адрес. Например: «/AdventureWorks Sample Reports/Employee Sales Summary&EmpID=1234». |
ReportName |
In |
String |
Краткое имя отчета (в приведенном выше примере кратким именем будет Employee Sales Summary). Это имя отображается в диалоговом окне «Печать» и в очереди печати. |
Пример
В следующем примере HTML указывается файл c расширением CAB, метод Print и значения свойств на языке JavaScript:
<BODY onload="Print()">
<OBJECT ID="RSClientPrint" CLASSID="CLSID:FA91DF8D-53AB-455D-AB20-F2F023E498D3" CODEBASE="<URL to the .CAB file>#Version=<your application version information>" VIEWASTEXT></OBJECT>
<script language="javascript">
function Print()
{
RSClientPrint.MarginLeft = 12.7;
RSClientPrint.MarginTop = 12.7;
RSClientPrint.MarginRight = 12.7;
RSClientPrint.MarginBottom = 12.7;
RSClientPrint.Culture = 1033;
RSClientPrint.UICulture = 9;
RSClientPrint.Print('https://localhost/rtm', '%2fEmployee_Sales_Summary&ReportMonth=6&ReportYear=2004&EmpID=20', 'Employee_Sales_Summary')
}
</script>
</BODY>
См. также