Библиотеки макрокоманд

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

Библиотеки макрокоманд по умолчанию в паках с исходными файлами документов. Например, файл src/template/ОРД ФБУ Тест-С.-Петербург v2.ott/Basic/Standard/EventHandlers.xml содержит модуль EventHandlers библиотеки Standard.

Общие библиотеки

Из соображений нормализации кода при разработки нескольких шаблонов документов общие модули целесообразно размещать в отдельной общей библиотеке макрокоманд. При этом её исходный код следует размещать отдельно в каталоге src/basic. Например, файл src/basic/TestStPetersburg/Common.bas содержит исходный код модуля Common библиотеки TestStPetersburg.

Обратите внимание на расширение имён файлов модулей в этом случае. Кроме того, в этом случае исходные файлы не содержат XML обрамления. Так же в этом случае не требуется создавать и поддерживать файл script-lb.xml (он формируется автоматически на этапе сборки).

При сборке шаблонов документов, либо при выполнении команды Build Open Office macro libraries, в каталоге препроцессора (output/basic) формируются файлы библиотек макрокоманд уже с XML обрамлением. Так же на этом этапе формируются и файлы script.xlb. Подготовленные каталоги библиотек макрокоманд могут быть использованы как внешние (без внедрения в состав шаблонов документов).

Включение общих библиотек в состав документов

Пример включения библиотеки макрокоманд в состав документа можно найти в файле src/template/ОРД ФБУ Тест-С.-Петербург v2.ott/Basic/script-lc.xml:

<library:libraries
  xmlns:library="http://openoffice.org/2000/library"
  xmlns:xlink="http://www.w3.org/1999/xlink"
>
  <library:library library:name="Standard" library:link="false"/>
  <library:library library:name="TestStPetersburg" library:link="true"/>
</library:libraries>

Исходный код библиотеки Standard при этом содержится в каталоге самого документа (@library:link="false"), а код библиотеки TestStPetersburg содержится вне каталога документа (@library:link="false") и вычисляется автоматически на этапе сборки.

На этапе препроцессирования файлы библиотеки внедряются в документ, и указанная выше ссылка преобразуется.