Использование элемента управления RSClientPrint в пользовательских приложениях

Элемент управления Microsoft ActiveX RSPrintClient обеспечивает работу функций печати отчетов в средстве просмотра HTML-страниц на стороне клиента. Он отображает диалоговое окно Печать, в котором просматривается отчет, указываются номера и изменяются поля печатаемых страниц, а также запускается задание на печать. При выполнении операции печати на стороне клиента сервер отчетов подготавливает отчет с помощью модуля подготовки отчетов в графическом формате (EMF), создает задание на печать и отправляет его на принтер с помощью средств операционной системы.

Печать на стороне клиента повышает управляемость и качество печати для отчетов в формате HTML. Это происходит благодаря применению размеров страниц, полей и колонтитулов, заданных в самом отчете, а не параметров печати в браузере на компьютере пользователя. То есть элемент управления считывает значения размера страниц и полей из свойств отчета.

Разработчики могут воспользоваться функцией печати на стороне клиента на панелях инструментов или программах просмотра сторонней разработки с помощью элемента управления ActiveX через COM-объект RSClientPrint. Он распространяется бесплатно. При работе с этим элементом следуйте приведенным ниже рекомендациям.

  • Элемент управления позволяет усовершенствовать функции печати веб-отчетов. Объект можно указать в любом из языков программирования, совместимых с Microsoft .NET Framework, или в скрипте. Данный элемент управления не предназначен для приложений Microsoft Windows Forms.

  • Скопируйте файл с расширением CAB из программных файлов служб Reporting Services в базу кода нужного приложения.

  • Элемент управления задается с помощью тега <OBJECT>.

  • В формате URL-адреса укажите относительный или полный путь к файлу с расширением CAB в атрибуте CODEBASE тега OBJECT.

  • Укажите сведения о версии приложения для файла с расширением CAB, чтобы отследить версию, которая используется в приложении.

Общие сведения о RSPrintClient

Данный элемент управления отображает пользовательское диалоговое окно печати, в котором поддерживаются все стандартные функции: предварительный просмотр, указание отдельных страниц и их диапазонов, поля и ориентация страниц. Он упакован в файл с расширением CAB. Текст в диалоговом окне Печать локализован для всех языков, поддерживаемых в SQL Server. Элемент управления ActiveX RSPrintClient для печати отчета использует модуль подготовки отчетов в графическом формате (EMF). Применяются следующие параметры EMF: StartPage, EndPage, MarginBottom, MarginLeft, MarginTop, MarginRight, PageHeight и PageWidth. Другие информационные параметры устройства для подготовки изображений к просмотру не поддерживаются.

Поддержка языков

Элемент печати выводит текст пользовательского интерфейса на разных языках и принимает вводимые значения в разных единицах измерения. Язык и единицы измерения определяются свойствами Culture и UICulture. Оба свойства принимают значения кода языка. Если указан код языка, который является вариантом поддерживаемого языка, то будет выбран тот язык, который ближе всего к указанному. Если указан код языка, который не поддерживается и похожий язык отсутствует, то будет использоваться английский язык (США).

Использование RSClientPrint в коде

Объект RSClientPrint обеспечивает программный доступ к элементу управления ActiveX, а также к его методам и свойствам. Элемент управления выводит модальное диалоговое окно предварительного просмотра.

Настройка значений по умолчанию

В диалоговом окне Печать можно указать размеры страниц и полей. По умолчанию диалоговое окно Печать инициализируется со значениями, взятыми из определения отчета. Можно либо оставить эти значения, либо указать другие путем настройки свойств объекта.

Все размеры указываются в миллиметрах. Преобразование единиц измерения происходит во время выполнения, если для свойств Culture и UICulture заданы локали, в которых используется система мер, отличная от метрической.

Значения, с помощью которых задаются размеры страниц и поля, можно получить с помощью метода GetProperties, который выводит соответствующие значения по умолчанию.

  • Параметры PageHeight и PageWidth задают высоту и ширину страниц по умолчанию. При запуске элемента печати на основе значений этих свойств выбирается ближайший размер страницы, доступный для текущего выбранного устройства печати. Если значение PageWidth больше значения PageHeight, то выбирается альбомная ориентация страницы, в противном случае выбирается книжная.

  • Свойства LeftMargin, RightMargin, TopMargin и BottomMargin по умолчанию имеют значение 12,2 миллиметра.

Эти свойства хранятся на сервере отчетов в коллекции свойств Item. и перезаписываются при каждом обновлении определения отчета.

Свойства RSClientPrint

Свойство Тип RW По умолчанию. Description
MarginLeft Двойной RW Параметры отчета Возвращает или задает левое поле. Значение по умолчанию — 12,2 мм (если оно не задано разработчиком или не указано в отчете).
MarginRight Двойной RW Параметры отчета Возвращает или задает правое поле. Значение по умолчанию — 12,2 мм (если оно не задано разработчиком или не указано в отчете).
MarginTop Двойной RW Параметры отчета Возвращает или задает верхнее поле. Значение по умолчанию — 12,2 мм (если оно не задано разработчиком или не указано в отчете).
MarginBottom Двойной RW Параметры отчета Возвращает или задает нижнее поле. Значение по умолчанию — 12,2 мм (если оно не задано разработчиком или не указано в отчете).
PageWidth Двойной RW Параметры отчета Возвращает или задает ширину страницы. Значение по умолчанию — 215,9 мм (если оно не задано разработчиком или не указано в определении отчета).
PageHeight Двойной RW Параметры отчета Возвращает или задает высоту страницы. Значение по умолчанию — 279,4 мм (если оно не задано разработчиком или не указано в определении отчета).
Культура Int32 RW Локаль браузера Указывает код локали (код языка). Это значение определяет единицы измерения для вводимых пользователем значений. Например, если пользователь вводит значение 3, то оно измеряется в миллиметрах для французского языка или в дюймах, если выбран английский язык (США). Допустимы следующие значения: 1028, 1031, 1033, 1036, 1040, 1041, 1042, 2052, 3082.
UICulture Строка RW Client culture Определяет локализацию текста в диалоговом окне. Текст в диалоговом окне "Печать" локализуется для следующих языков: китайский упрощенный, китайский традиционный, английский, французский, немецкий, итальянский, японский, корейский и испанский. Допустимы следующие значения: 1028, 1031, 1033, 1036, 1040, 1041, 1042, 2052, 3082.
Аутентификация Логический RW False Указывает способность элемента управления вызывать с помощью команды GET сервер отчетов, чтобы открыть соединение для внесеансовой печати.

Случаи, в которых необходимо задавать свойство Authenticate

При печати из сеанса браузера свойство Authenticate задавать не надо. В контексте активного сеанса все запросы элемента управления к серверу отчетов выполняются через браузер. Последний устанавливает переменные сеанса, необходимые для обмена данными с сервером отчетов.

При внесеансовой печати (например, при отправке отчета непосредственно на принтер без его открытия) элемент печати должен выдать HTTP-запрос GET для открытия сеанса на сервере отчетов. Чтобы выдать запрос GET, свойству Authenticate следует задать значение True.

Запрос GET необходим только в режиме встроенной безопасности или обычной проверки подлинности Windows. При проверке подлинности с помощью форм свойство Authenticate не используется. Код приложения должен установить сеанс и выполнить проверку подлинности пользователя через настраиваемый модуль безопасности. Если используется проверка подлинности с помощью форм, задайте в куки-файле приемлемый срок действия сеанса. Если это значение слишком мало, то у пользователя каждый раз после истечения срока действия куки-файла будут запрашиваться учетные данные.

Идентификаторы CLSID

При локальном запуске отчета используйте следующие значения CLSID.

  • 41861299-EAB2-4DCC-986C-802AE12AC499

  • 5554DCB0-700B-498D-9B58-4E40E5814405

  • 60677965-AB8B-464f-9B04-4BA871A2F17F

При выполнении отчета в Azure SQL Reporting используются следующие значения CLSID.

  • 3DD32426-554D-48C0-A200-65D3BF880E38

  • 05662494-ACF9-446A-BE4C-7D3F7EA7F62F

Поддержка RSPrintClient для метода Print

Объект RSClientPrint поддерживает метод Print, который предназначен для вызова диалогового окна "Печать". Ниже приведены аргументы метода Print.

Аргумент ВВОД-ВЫВОД Тип Описание
ServerPath In Строка Создает виртуальный каталог для сервера отчетов (например, https://adventure-works/reportserver).
ReportPathParameters In Строка Указывает полное имя отчета в пространстве имен папок сервера отчетов, включая параметры. Получение отчетов производится через URL-адрес. Например, "/AdventureWorks Sample Reports/Employee Sales Summary&EmpID=1234".
ReportName In Строка Краткое имя отчета (в приведенном выше примере кратким именем будет Employee Sales Summary). Это имя отображается в диалоговом окне «Печать» и в очереди печати.

Пример

В следующем примере HTML указывается файл с расширением CAB, метод Print и значения свойств на языке JavaScript:

<BODY onload="Print()">

<OBJECT ID="RSClientPrint" CLASSID="CLSID: 5554DCB0-700B-498D-9B58-4E40E5814405D3" 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>

См. также

Печать отчетов из браузера с помощью элемента управления печатью (построитель отчетов и службы SSRS)
Печать отчетов (построитель отчетов и службы SSRS)
Настройки сведений об устройстве вывода изображений