Настройка печати
Любой отчет формируется на сервере приложений и передается в виде файла в клиентское приложение для показа конечному пользователю. Формат файла выбирается пользователем на форме параметров подготовки отчета.
В настоящий момент поддерживаются форматы 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 для печати отчета.
- В реестре ищется раздел 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.
- В найденном разделе определяется значение строкового параметра с именем Extension. Найденное значение интерпретируется как расширение файла. Далее определяется приложение, ассоциированное с этим расширением. Для этого внутри раздела HKEY_CLASSES_ROOT ищется раздел с именем расширения.
- Значение по умолчанию для этого раздела в свою очередь также интерпретируется как имя приложения. Внутри раздела HKEY_CLASSES_ROOT ищется раздел с именем приложения.
- Внутри найденного раздела приложения выбирается значение по умолчанию раздела 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.