Опубликован: 16.05.2007 | Доступ: свободный | Студентов: 5073 / 1640 | Оценка: 3.97 / 3.67 | Длительность: 16:50:00
Специальности: Менеджер
Лекция 17:

Первые шаги в работе с макросами

< Лекция 16 || Лекция 17: 12345 || Лекция 18 >

Управление библиотеками

Этот раздел имеет дело с созданием, перемещением и переименованием библиотек и модулей. Рассматривая управление библиотеками, важно сначала понять некоторые основы, которые уже обсуждались:

  • Контейнер библиотек содержит ноль или более библиотек.
  • Каждая библиотека содержит ноль или более модулей и диалогов.
  • Каждый модуль содержит ноль или более макросов.
  • Приложение – контейнер библиотек, называемых "Мои макросы" и "Макросы OpenOffice.org". Библиотеки, сохраненные в приложении, глобально доступны для всех макросов.
  • Каждый документ – контейнер библиотек.
  • Библиотека по имени Standard является особенной; она всегда существует и не может быть перезаписана. Я не советую использовать библиотеку Standard.
  • Всегда давайте значащие имена библиотекам и модулям, которые Вы создаете. Например, Library1 и Module4 не значащие названия, а AXONInvoiceForm1 может быть более описательным и полезным.

Как сохраняются библиотеки

Библиотеки OpenOffice.org сохраняются как файлы XML, которые являются легко редактируемыми при использовании любого текстового редактора. Другими словами, легко случайно повредить ваши файлы. Ручное редактирование ваших внешних библиотек вообще считается глупым, я имел по крайней мере один случай, где это требовалось, потому что OOo был неспособен загрузить модуль, который содержал синтаксическую ошибку.

СОВЕТ Ручное редактирование файлов OOo лучше всего оставить продвинутым пользователям. Начинающий пользователь может захотеть бегло просмотреть этот материал или поскорее перейти к следующему разделу.

Библиотеки приложения

Каждая библиотека приложения сохранена в одном каталоге, а каждый модуль и диалог содержатся в одном файле. Диалог Параметры ( Сервис > Параметры > OpenOffice.org > Пути ) содержит запись, которая указывает где располагаются библиотеки. Глобальные библиотеки, которые включены в OpenOffice.org, сохраняются в отделенном основном каталоге под каталогом, в котором установлен OOo. Например:

C:\Program Files\OpenOffice.org 2\share\basic
/usr/local/OpenOffice.org 2/share/basic

Библиотеки, которые Вы создаете, сохраняются в различных каталогах. На моем Windows-компьютере я имею однопользовательскую установку, а на моем Linux-компьютере – многопользовательскую сетевую установку. Параметры, которые Вы задаете, устанавливая OOo, определяют местоположение ваших личных библиотек. Вот два примера:

C:\Program Files\OpenOffice.org 2\user\basic
/home/andy/OpenOffice.org 2/user/basic

Листинг разделяемых каталогов показывает один файл для каждой библиотеки приложения, включенных в OOo. Пользовательский каталог, однако, немного более интересен:

Таблица 17.1.
Элемент Описание
dialog.xlc XML-файл, который ссылается на каждый файл диалога, известный этому пользователю в OpenOffice.org.
script.xlc XML-файл, который ссылается на каждый файл библиотеки, известный этому пользователю в OpenOffice.org.
Standard Каталог, содержащий библиотеку Standard.
Pitonyak Каталог, содержащий библиотеку с кодом, который создал Эндрю Питоньяк.
PitonyakDialogs Каталог, содержащий библиотеку с некоторым кодом и диалогом.
Примечание Таблица ссылается на каталоги Pitonyak и PitonyakDialogs. Библиотека Pitonyak и библиотека PitonyakDialogs не связаны; их названия подобны, потому что я испытывал недостаток в творческом потенциале и здравом смысле, когда назвал их. Не верно, что библиотека PitonyakDialogs содержит диалоги для библиотеки Pitonyak.
Диалоги Макрос и Управление макросами отображают доступные библиотеки и модули

увеличить изображение
Рис. 17.15. Диалоги Макрос и Управление макросами отображают доступные библиотеки и модули

Файлы dialog.xlc и script.xlc содержат ссылки на все диалоги и библиотеки, которые известны OOo. Видимые библиотеки — которые видны в диалогах Макрос и Управление макросами ( рис. 17.15) — построены из файлов dialog.xlc и script.xlc. Если эти два файла будут перезаписаны, то OOo не будет знать о ваших личных библиотеках, даже если они будут существовать.

Диалог Управление макросами показывает, что библиотека PitonyakDialogs содержит один диалог; перейдите на вкладку Модули, чтобы увидеть модули кода. Ниже таблица содержит листинг файлов в каталоге PitonyakDialogs. Заметьте, что каждый модуль и диалог в библиотеке имеют соответствующий файл.

Таблица 17.2.
Файл Описание
dialog.xlb Ссылается на диалоги, содержавшиеся в этой библиотеке.
script.xlb Ссылается на модули, содержавшиеся в этой библиотеке.
Module1.xba BASIC-код в модуле по имени Module1.
SimpleObjectBrowserCode.xba BASIC-код в модуле по имени SimpleObjectBrowserCode.
SimpleObjectBrowser.xdl Диалог в модуле по имени SimpleObjectBrowser.

Файлы dialog.xlc и script.xlc из таблицы 17.1 ссылаются на файлы dialog.xlb и script.xlb в таблица 17.2 . Вообще, ни один из этих файлов не должен изменяться вручную, но в критическом положении они могут быть изменены вручную для исправления определенных типов ошибок.

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

Документ OpenOffice.org, когда сохраняется на диск, сохраняется в стандартном формате ZIP. Любая программа, которая может просматривать и извлекать файлы ZIP, может использоваться для просмотра документа OOo — однако, некоторые программы будут требовать, чтобы Вы изменили расширение файла на ZIP.

После распаковки документа OOo Вы найдете файлы, которые содержат исходное содержание, стили и параметры настройки. Извлеченный документ также содержит три каталога. Каталог META-INF ссылается на все другие файлы, вставленные изображения, коды библиотек и диалогов. Каталог Dialogs содержит все встроенные диалоги, а каталог Basic содержит все встроенные библиотеки. Заметьте, что библиотеки, содержавшиеся в контейнере прикладного уровня сохраняются немного в другой конфигурации, чем библиотеки, содержащиеся в документе.

Как эксперимент, я взял документ, который содержал многочисленные элементы управления, вызываемые определенной библиотекой. Я разархивировал документ и затем использовал инструмент поиска текста, чтобы найти все ссылки на определенную библиотеку по имени CH03. После ручного изменения каждого вхождения текста "CH03" на "CH04" я заархивировал каталог назад в единый файл, и OOo был в состоянии прочитать и использовать файл. Я успешно изменил название содержавшейся библиотеки и каждой ссылки на элементы управления, редактируя определения XML.

Примечание Цель этого раздела в том, что в критическом положении Вы можете вручную просмотреть XML-документ и устранить потенциальные проблемы. Это НЕ лучший способ изменить название библиотек документа.

Использование диалога Управление макросами

Диалог Управление макросами ( Сервис > Макрос > Управление макросами > OpenOffice.org Basic > Управление ) в состоянии удовлетворить потребности большинства пользователей по управлению модулями и библиотеками. Вкладка Модули диалога Управление макросами ( рис. 17.2) обеспечивает возможность создавать и удалять модули. Диалог Управление макросами также имеет вкладку Библиотеки ( рис. 17.16), используемую для создания и удаления библиотек. Вкладка Библиотеки содержит сверху поле с выпадающим списком, которое используется для выбора контейнера библиотек. Другими словами, Вы можете выбрать определенный открытый документ или библиотеку приложения.

Примечание Название документа – название файла, если название документа не установлено в диалоге Свойства документа ( Файл > Свойства > Описание ). Если свойство Заголовок установлено, оно используется как название документа в заголовке окна, диалоге Макрос и диалоге Управление макросами.
Использование диалога Управление макросами для создания, добавления и удаления библиотек

Рис. 17.16. Использование диалога Управление макросами для создания, добавления и удаления библиотек
< Лекция 16 || Лекция 17: 12345 || Лекция 18 >
юрий лылов
юрий лылов

более туманного и запутанного объяснения макросов трудно наверно себе представить , похоже препод сам плавает во всем этом а вопросов поэтому нет ибо и отвечать будет некому

Павел Кекконен
Павел Кекконен