Библиотеки макрокоманд
Общие сведения
Библиотеки макрокоманд по умолчанию в паках с исходными файлами документов.
Например, файл
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") и вычисляется автоматически на этапе сборки.
На этапе препроцессирования файлы библиотеки внедряются в документ, и указанная выше ссылка преобразуется.