XML–взаимодействие DOS–программ и MSOffice

 
 

В настоящее время в эксплуатации находится большое количество программных систем (ПС)[1], разработанных для среды DOS. Эти ПС, в большинстве случаев, обладают достаточной функциональностью, однако «оформительские» возможности[2] их далеко отстают от уровня, задаваемого современными программно–аппаратными средствами (лазерные и струйные принтеры, компоненты MS Office).

В некоторых из таких ПС существует встроенная система печати отчётов в RTF–формате, пригодном для обработки в MSWord. Подобные RTF–системы имеют ряд недостатков: сложно использовать различные версии Word’а, не всегда удаётся воспользоваться всеми возможностями современного графического оформления (цветовое и шрифтовое оформление, графический логотип фирмы на бланке документа) и др. Печать таких RTF–документов должна, как правило, производиться на том же компьютере, на котором документы сформированы, что, во-первых, замедляет скорость работы оператора системы, во-вторых, делает практически невозможным печать таких документов из DOS-версий программ.

Для преодоления указанных недостатков[3] предлагается другой способ представления документов вместо RTF-формата – совокупность шаблона документа, подготовленного в используемой версии MS Word, и программы формирования документа на основе шаблона и данных программной системы.

Шаблон содержит все необходимые элементы графического и текстового оформления документа (стандартные текстовые фрагменты, заготовки таблиц, графические элементы и т.д.). Возможности оформления ограничены только возможностями используемой версии MS Word. Информация из программы заносится в именованные поля (закладки, bookmarks).

Программа оформления документа по разработанному шаблону представляет собой сценарий (скрипт) на языке VBScript. При исполнении сценарий вызывает установленный в системе MS Word с использованием механизма сервера OLE-автоматизации, формирует на основе шаблона новый документ и заполняет его поля информацией, занесённой ПС в текстовый файл в XML–формате. XML–формат выбран в силу своей универсальности (можно хранить структурированные данные различных типов) и простоты использования (поля шаблона документа и XML-теги могут иметь одинаковые имена, не требуется перекодировки данных, если ПС не поддерживает нужной кодировки[4]). Для исполнения такого сценария требуются компонент MS Windows Scripting Host (WSH) и COM–объект msxml, бесплатно поставляемые в составе MS Internet Explorer 4 и выше, и входящие в состав операционных систем MS Windows 98/2000.

 

Схема взаимодействия программных компонентов приведена на рисунке.

 

Способы работы могут варьироваться в зависимости от конкретных задач. Так, при запуске сценария на том же компьютере, на котором функционирует клиент ПС, оператор освобождается от необходимости ожидать загрузки и выгрузки MS Word, вручную запускать печать сформированных документов: сценарий выполняется как отдельная задача операционной системы, MS Word на экран не выводится, а сразу печатает сформированные документы. Однако, для такого варианта эксплуатации требуется компьютер, работающий под и имеющий необходимую мощность для одновременного запуска клиента ПС и MS Word.

Для обеспечения высокой производительности формирования и печати документов (например, когда несколько операторов ПС формируют счета на продажу и печатают их для вручения клиентам) участвующие в процессе программные компоненты можно распределить по разным компьютерам: DOS- или Windows-клиенты ПС функционируют в обычном режиме, а сценарий и MS Word можно запускать на отдельном компьютере, имеющем по сети доступ к каталогам, в которые клиенты ПС записывают выходные XML–файлы с данными. Запуск этих сценариев можно организовать с использованием программы–монитора[5] , которая отслеживает события, связанные с изменением файлов, и запускает необходимые обработчики таких событий (в данном случае обработчиком служит файл сценария). Эксперименты показывают, что такая конфигурация позволяет компьютеру со средними характеристиками (процессор Celeron/333, ОЗУ 32 Мбайт) под управлением Windows NT 4.0/Windows 2000 с установленным MS Word 2000, печатать одностраничные документы, формируемые на 3…4 рабочих местах системы «Галактика», через 40…60 сек после формирования XML–файла с данными. Документы содержат текстовую и табличные части с необходимым шрифтовым оформлением и графический логотип.

Файлы примера, необходимые для формирования таких документов, содержатся в архиве Xml2off.zip:

Файлы InvSale.xml, InvSale.sct и MakeFromXML.vbs содержат комментарии, позволяющие выполнить необходимые модификации этих файлов.

Константин М. Дьяков
e-mail: dyakovkm@lycos.ru

Разработка получила от тестовой лаборатории PC Magazine Russian Edition логотип "Yes, It works Office Extensions" 

PC Magazine №5/2001

Word-вариант статьи


[1] Бухгалтерские программы, программы для складского учёта и торговли.

[2] Например, в формируемых документах сложно использовать шрифтовое оформление, цветной графический логотип фирмы и т.д.

[3] Описанная ниже система, очевидно, может быть применена и к любым другим программным системам, имеющим возможность формирования дополнительных («пользовательских») текстовых отчётов.

[4] Например, работает в кодировке DOS (cp866), а установленная версия MSWord использует кодировку win-1251.

[5] Можно порекомендовать свободно распространяемую программу LogMon, автор Vadim Dumbravanu, koenigvad@yahoo.com, http://www.bitrix.ru/logmon/eng/