Настройка печати

Любой отчет формируется на сервере приложений и передается в виде файла в клиентское приложение для показа конечному пользователю. Формат файла выбирается пользователем на форме параметров подготовки отчета.

В настоящий момент поддерживаются форматы ExcelXML(MIME тип application/vnd.ms-excel) и Excel2007(MIME тип application/vnd.openxmlformats-officedocument.spreadsheetml.sheet). У формата ExcelXML (оставлен для совместимости, в следующих версиях системы он поддерживаться не будет) есть некоторые технические ограничения:

  • Не поддерживаются картинки
  • Не поддерживаются штрих-коды
  • Не полностью реализованы возможности технологии «Хранимых отчетов».

Рекомендуем использовать Excel2007, который выбран на форме параметров подготовки отчета по умолчанию.

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

Способ обработки файла зависит от настройки находящейся в меню Настройки>Все настройки (Ctrl+Shift+E). Путь расположения настройки: Настройки – Настройки клиента – Отчеты и документы

Хранить временные файлы в каталоге – каталог для временных файлов. Полученные с сервера файлы отчетов будут сохраняться в указанное место.

Использовать DDE для документовфлаг отвечающий за использование DDE. При отключении DDE будет использоваться режим командной строки.

В режиме командной строки определяется приложение, ассоциированное в операционной системе с MIME типом отчета. Это приложение запускается и ему в параметрах командной строки передается сформированный файл. Недостатком этого способа является то, что у MS Excel нет способа напечатать файл напрямую из командной строки.

В режиме DDE определяется приложение, ассоциированное в операционной системе с MIME типом отчета. Это приложение запускается и по протоколу DDE ему передается команда на обработку файла. Этот режим можно использовать, чтобы MS Excel сразу отправлял подготовленный отчет на принтер по умолчанию.

Время ожидания запуска сервиса – Таймаут ожидания запуска сервиса DDE в миллисекундах.

Время ожидания ответа сервиса DDE – Таймаут ожидания ответа от сервиса DDE в миллисекундах.

Использовать один экземпляр сервера DDE – В зависимости от версии офисного пакета, позволяет открывать отчеты в одном экземпляре Excel для экономии памяти. Офисный пакет должен быть типа MDI, что предполагает существование основного окна приложения и окон документов, располагающихся внутри основного окна (например Excel 2010).

Алгоритм поиска приложения для обработки отчета

Как определяется приложение для показа и печати отчета (см. схему). Здесь и далее вместо Verb нужно использовать значение Open для просмотра и Print для печати отчета.

  1. В реестре ищется раздел HKEY_CLASSES_ROOT\MIME\Database\Content Type\application/vnd.openxmlformats-officedocument.spreadsheetml.sheet для формата Excel2007 или в раздел HKEY_CLASSES_ROOT\MIME\Database\Content Type\application/vnd.ms-excel для формата ExcelXML.
  2. В найденном разделе определяется значение строкового параметра с именем Extension. Найденное значение интерпретируется как расширение файла. Далее определяется приложение, ассоциированное с этим расширением. Для этого внутри раздела HKEY_CLASSES_ROOT ищется раздел с именем расширения.
  3. Значение по умолчанию для этого раздела в свою очередь также интерпретируется как имя приложения. Внутри раздела HKEY_CLASSES_ROOT ищется раздел с именем приложения.
  4. Внутри найденного раздела приложения выбирается значение по умолчанию раздела shell\Verb\command и интерпретируется как имя исполняемого файла с параметрами вызова. Указанный исполняемый файл запускается с указанными параметрами, к которым добавляется имя файла отчета.

При использовании механизма DDE сначала выполняются шаги с 1 по 3 описанного выше алгоритма. Далее внутри найденного раздела приложения выбирается значение по умолчанию раздела shell\Verb\command и интерпретируется как имя исполняемого файла с параметрами вызова. Приложение запускается и с ним устанавливается взаимодействие по протоколу DDE. Значение по умолчанию подраздела shell\Verb\ddeexec\ifexec (а при отсутствии значение по умолчанию раздела shell\Verb\ddeexec) интерпретируется как DDE команда.

Подробно о принципах назначения команд контекстного меню смотрите в статьях «Extending Shortcut Menus» и «How to Associate Verbs with DDE Commands» в MSDN.