Способ формирования отчётов системы «Галактика» в формате MS Word с использованием XML–технологии.

Представлен пакет программных компонентов для формирования отчётов системы «Галактика» и других подобных программ.

1.    Схема работы

 

Отчёты в формате MS Word формируются по данным прикладной программы по следующей схеме:

 

Flowchart: Preparation: Компонент формирования отчёта

Данные из прикладной программы выгружаются во внешний текстовый файл в xml–формате. Для выгрузки используется присоединённая форма, формирующая xml–тэги. Выгруженные данные используются COM–компонентом формирования отчёта, который на основе шаблона формирует выходные документы в формате MS Word. Такие документы могут быть распечатаны, сохранены на диске, отправлены по почте клиентам.

 

2.    Состав и назначение компонентов пакета

2.1             Компонент формирования отчёта “XML2Word.dkms

Представляет собой COM–компонент, извлекающий данные из xml–файла и формирующий документ[ы] MS Word по заданному шаблону. Компонент формирует документы, содержащие не более одной таблицы спецификации (напр., счета, накладные, платёжные поручения и т.п.).

Для извлечения данных используется, в свою очередь, системный компонент (xmlparser) “Microsoft.XMLDOM”. Компонент (файл xml2word.wsc) написан на языке JavaScript, открыт для доработок и исполняется в операционной системе MS Windows 9x/NT/2000  с установленной системой Windows Scripting Host.

Компонент имеет следующие свойства и методы:

2.2             Присоединённая форма

Непосредственно преобразует выходной поток в файл xml–формата. Формируется по правилам разработки присоединённых форм с использованием компилятора FCOM и помещается в загружаемый ресурс (напр., XML.res). Заготовка формы может быть сформирована с помощью инструментария по шаблону отчёта.

При разработке нескольких отчётов на одной базовой форме целесообразно в присоединённой форме выводить всю информацию (все поля базовой формы), а отбор полей выполнять с помощью шаблона.

2.3             Шаблон отчёта

Представляет собой шаблон MS Word, содержащий поля для информации и элементы оформления выходного отчёта. Для разметки полей используются элементы Bookmarks(закладки), CustomProperties(дополнительные свойства) и Variables(внутренние переменные). Шаблон разрабатывается пользователем средствами MS Word (шрифтовое, цветовое, графическое оформление) с использованием инструментария (разметка полей, заготовка присоединённой формы). При изменениях шаблона модификации присоединённой формы не требуется.

2.4             MS Word

Используется стандартный компонент MS Office 2000/XP в режиме сервера OLE-автоматизации под управлением компонента XML2Word.dkms. Формирует документ по шаблону, заполняет поля информацией, сохраняет и печатает выходные отчёты.

Используется в качестве среды исполнения для инструментария. Инструментарий использует средства MS Office Assistant.

2.5             Инициирующий компонент

Используется для запуска компонентов пакета по событию формирования отчёта прикладной программой. Состоит из двух компонентов:

монитор LOGMON.EXE – отслеживает момент генерации/изменения xml–файла и запускает скрипт;

скрипт MakeFromXML.vbs – инициирует компонент XML2Word.dkms и вызывает метод execute.

 

2.6             Инструментарий

Используется для разметки шаблона отчёта и генерации заготовки присоединённой формы. Состоит из набора VBA–макросов, находящихся в файле XML4Gal.dot. Запуск макросов производится с помощью кнопок панели/toolbar «Работа с отчётом»

3       Установка пакета

4       Использование пакета

4.1             Разработка шаблона

4.2             Разработка присоединённой формы

 

4.3             Формирование отчёта

Формирование xml–файла и печать отчёта не обязательно выполнять на одном компьютере. Параметр скрипта MakeFromXML.vbs может содержать имя протокола (напр., http://…), что даёт возможность выполнить формирование и печать документов на удалённом компьютере (LAN, Intranet).

 

4.4             Формат xml–файла

 

<?xml version="1.0" encoding="cp866"?>

Заголовок файла, кодировка символов. Обязательный тег

<doclist nPrint="1" saveDoc="1">

Список документов, в атрибутах – режим формирования:

<doc dotfile="MyReport.dot">

            dotfile - имя файла с шаблоном отчёта

    <field protName="sdoc"><![CDATA[ данные ]]></field>

                        ........

                        По количеству «простых» полей документа (protName – имя поля в прототипе).

    <spec_table>

     Спецификация

      <row>

        <col protName="Np"><![CDATA[ данные ]]></col>

                        ........

                        По количеству колонок спецификации документа.

      </row>

                        ........

                        По количеству строк спецификации документа.

    </spec_table>

  </doc>

            ........

По количеству документов в файле.

</doclist>