Скачать бесплатно книги, учебники, журналы. | ||||||||||||||||||||||
|
Учебник OpenOffice.orgЯзык макросов OpenOffice.orgМакрос – сохраненная последовательность команд или нажатий клавиши, которые предназначены для использования в будущем. Пример простого макроса – "вывод" вашего адреса. Макросы поддерживают команды, которые позволяют выполнять различные функции, такие как принятие решений (например, если баланс меньше чем ноль, отобразить его красным цветом; в противном случае – черным), обработка (если баланс больше чем ноль, вычесть из него 10), и даже взаимодействие с человеком (запросить у пользователя число). Некоторые из этих команд основаны на языке программирования BASIC. (BASIC – акроним для Beginner&s All-purpose Symbolic Instruction Code.) Обычно макрос связывают с нажатием клавиши или значком на панели инструментов так, чтобы его можно было быстро выполнить. В OpenOffice.org язык макросов очень гибок и позволяет автоматизировать различные простые и сложные задачи. Написание макросов и изучение внутренней работы OpenOffice.org может быть очень занимательным, но это не всегда лучший путь. Макросы особенно полезны, когда Вы должны выполнить какую-либо задачу одним и тем же путем множество раз, или когда Вы хотите нажать одну кнопку, чтобы сделать что-то, что обычно выполняется за несколько шагов. Время от времени Вы можете написать макрос, который делает что-то, чего Вы не можете выполнить иным способом в OpenOffice.org, но в этом случае Вы должны убедиться, что OOo не может сделать этого. Например, общий запрос к какому-нибудь списку адресатов OpenOffice.org для удаления пустых абзацев. Подобные функциональные возможности предоставляет Автоформат (выполните Сервис > Автозамена > Вкладка Параметры ). Также возможно использование регулярных выражений для поиска и замены пустых мест. Есть время и цель для создания макросов и время для других решени й. Эта глава подготовит Вас со временем и Вы будете понимать, когда макрос – лучшее решение.
OpenOffice.org язык макросов основан на языке программирования Basic. OOo Basic выполняет одну строку одновременно. Поскольку обычно Вы нуждаетесь в более чем одной строке, чтобы сделать что-нибудь, Вы будете писать программы – также известные как процедуры – которые состоят из множества строк, и когда исполняются, выполняют определенные действия. Например, Вы могли бы написать программу, которая удаляет верхний колонтитул из файла и вставляет предпочтительный для Вас верхний колонтитул. В OpenOffice.org программы, которые логически связаны, сохраняются в модуле. Например, модуль может содержать программы для нахождения общих ошибок, требующих редактирования. Логически связанные модули сохраняются в библиотеках, а библиотеки – в контейнерах библиотек. OpenOffice.org приложение может вести себя как контейнер библиотеки, а может как любой документ OOo. Просто запомните, что приложение OpenOffice.org и любой OpenOffice.org документ может содержать библиотеки, модули и макросы.
Хранение макросов в библиотеке документовКаждый документ OpenOffice.org является контейнером библиотек и способен содержать макросы и диалоги. Когда документ содержит макросы, которые он использует, обладание документом подразумевает обладание макросом. Это удобный метод распространения и хранения. Пошлите документ другому человеку или измените его размещение и макросы будут доступны и пригодны к употреблению. Традиционный метод представления языка программирования, написание программы тем или иным образом выводящей сообщение "Hello World". Целые веб-сайты существуют с единственной целью – показать программы "Hello World" на стольких многих различных языках программирования, насколько возможно (например, смотри http://www2.latech.edu/~acm/HelloWorld.shtml. Не будем нарушать традиций, и первый показанный макрос будет вариацией на тему "Hello World". Шаг 1. Создание библиотекиВсе документы OOo, независимо от типа документа, могут содержать макросы. Чтобы добавить макрос к любому документу OOo, документ должен быть открыт для редактирования. Сначала, создадим новый текстовый документ, который будет называться "Безымянный1" – предполагая, что никакой другой еще неназванный документ не является открытым в настоящее время. Когда документ создан, OpenOffice.org создает пустую библиотеку по имени Standard. Библиотека Standard, однако, остается пустой, пока не создан вручную новый модуль. Используйте диалоговое окно Макрос OpenOffice.org, чтобы организовать библиотеки и модули: выполните Сервис > Макросы > Управление макросами > OpenOffice.org Basic (рис. 17.1). Рис. 17.1. Использование диалога Макросы для создания нового макроса и организации библиотеки Список "Макрос из" отображает доступные контейнеры библиотек; он включает каждый открытый документ, ваши личные макросы, и макросы, распространяемые с OOo. Ваши личные макросы, отображаемые как "Мои макросы" на 17.1, обычно сохраняются в вашем личном каталоге пользователя. "Макросы OpenOffice.org" обычно сохраняются отдельно в каталоге с программными файлами OOo. Хотя ваш личный макрос сохранен и отображается отдельно от макросов OOo, оба, являются частью библиотеки прикладного уровня. Контейнеры библиотеки документа перечислены с использованием заданного имени документа. Большинство контейнеров библиотек уже имеет библиотеку по имени Standard. Выполните двойной щелчок на значке контейнера библиотеки для отображения содержащихся библиотек. Выполните двойной щелчок на библиотеке для отображения содержащихся модулей.
Библиотека Standard для безымянного документа автоматически создается при создании нового документа. Документ в настоящее время не содержит никаких модулей – помните, что макросы сохраняются в модулях. Хотя Вы могли нажать на кнопку Создать для создания нового модуля, не делайте этого! Пункт этого раздела должен создать новую библиотеку.
Нажмите на кнопку Управление, чтобы открыть диалог Управление макросами (17.2). Как и в диалоговом окне Макрос, здесь перечислены все контейнеры библиотек. На 17.2 библиотека Standard подсвечена в документе "Безымянный1"; прокрутите список вниз, чтобы найти "Безымянный1", если требуется. Диалог Управление макросами содержит несколько закладок и текущая закладка Модули. Поскольку название подразумевает, закладка Модули имеет дело с модулями. Вот описание пунктов этого диалога:
Цель этого раздела состоит в том, чтобы создать библиотеку названную осмысленно, которая содержится в документе "Безымянный1". Перейдите на вкладку Библиотеки, чтобы иметь дело с библиотеками (рис. 17.3). Рис. 17.3. Использование диалога Управление макросами для управления библиотеками Когда эта часть диалога отображается, в списке Приложение/Документ выбран контейнер Мои макросы и диалоги. Выберите документ "Безымянный1" так, чтобы изменения проводились в безымянном документе. Кнопки, показанные на закладке Библиотеки, затрагивают библиотеки, а не модули. Вот их описание: Рис. 17.4. Выберите значащее наименование для библиотеки Нажмите кнопку Новая библиотека для создания новой библиотеки (рис. 17.4). Хотя название по умолчанию "Library1", лучше выбрать значащее название, типа "MyFirstLibrary" или "TestLibrary". Нажмите OK, чтобы создать библиотеку. Диалоговое окно Управление макросами теперь содержит вновь созданную библиотеку в списке Библиотек (рис. 17.5). Рис. 17.5. Документ теперь содержит библиотеку по имени TestLibrary Шаг 2. Создание модуляМакросы сохраняются в модуле, таким образом следующим шагом должно быть создание модуля в только что созданной библиотеке. Предполагая, что диалог Управление макросами (рис. 17.3) все еще открыт, выберем вкладку Модули (рис. 17.6). Рис. 17.6. TestLibrary содержит один модуль по имени Module1. Недавно созданная библиотека TestLibrary теперь отображается в диалоге Управление макросами. Выберите TestLibrary или любой модуль, содержащийся в этой библиотеке, и затем нажмите кнопку Новый модуль для создания нового модуля Рис. 17.7. Новый модуль. Имя по умолчанию Module1; выберите более описательное название для модуля и нажмите OK, чтобы создать его.
Распространенная ошибка состоит в выборе неправильного контейнера библиотек в диалогах Макрос или Управление макросами. Самая распространенная ошибка состоит в выборе библиотеки или модуля в прикладном контейнере (Мои макросы или Мои диалоги), а не в определенном документе. Найдите название документа в списке. Название документа определено полем Заголовок, установленным в диалоге Свойства документа. Используйте Файл > Свойства для открытия диалога Свойства документа. Заголовок задан на вкладке Описание. Если Заголовок не задан, вместо него используется имя файла.
Шаг 3. Ввод вашего первого макросаЕсли диалоговое окно Управление макросами все еще открыто, Вы можете выделить недавно созданный модуль и нажать кнопку Редактировать . Это откроет Basic IDE (рис. 17.9). Другой выбор состоит в использовании диалога Макрос. Если диалог Управление макросами открыт, нажмите кнопку Закрыть для открытия диалога Макрос. Если диалог Управление макросами не открыт, выполните Сервис > Макрос > Управление макросами > OpenOffice.org Basic для открытия диалога Макрос (рис. 17.8). Вот описание кнопок в диалоге Макрос:
Назначение диалога Макрос состоит в том, чтобы работать с отдельным макросом. Выберите MyFirstModule и нажмите кнопку Редактировать для открытия Basic IDE (рис. 17.9). Одна пустая подпрограмма, Main, автоматически создается при создании модуля. IDE, показанная нарис. 17.9, была открыта нажатием на MyFirstModule и затем нажатием на кнопку Редактировать . Введите код, приведенный в пример 1.. пример 1. Программа "Hello World" найденная в файлах исходного текста этой главы на веб-сайте Hentzenwerke. Sub main HelloWorld2() End Sub Sub HelloWorld1 Print "Hello World One" End Sub Sub HelloWorld2 Print "Hello World Two" End SubЛистинг 1. Программа "Hello World" найденная в файлах исходного текста этой главы на веб-сайте Hentzenwerke Рис. 17.9. Разработка макроса в IDE IDE содержит панели инструментов Макрос и Стандарт, обозначенные нарис. 17.9. (Большинство значков на панели инструментов Макрос описаны в разделе "Интегрированная среда разработки") Остановите курсор Вашей мыши на каждом из значков панели инструментов на пять секунд и прочтите появляющийся текст; это дает подсказку о назначении данного значка. Рис. 17.10. Нажмите на значок Компиляция, чтобы найти синтаксические ошибки, такие как отсутствие кавычек Нажмите на значок Компилировать , чтобы проверить макрос на наличие синтаксических ошибок. Сообщение не отображается, если ошибки не найдены (рис. 17.10). Нажатие на значок Компиляция осуществляет выполнение компиляции только для текущего модуля. Измените код в пример 1. для демонстрации ошибки. Удалите вторую кавычку из утверждения Print в HelloWorld1 (рис. 17.10). После чего нажмите значок Компиляция . Диалог показывает важное сообщение об ошибке для первой ошибки, с которой сталкиваются. Сообщение об ошибке на рис. 17.10указывает, что ожидалась кавычка, но не была найдена. Первый символ кавычки выделен, и красная стрелка отмечает строку с ошибкой. Нажмите кнопку OK для закрытия диалога сообщения об ошибке, исправьте строку, добавив кавычку в конце, и затем скомпилируйте код заново. Нажмите на значок Выполнить для запуска первой подпрограммы в текущем модуле. Нет необходимости нажимать сначала на значок Компиляция, потому что нажатие на значок Выполнить автоматически компилирует каждый модуль в текущей библиотеке. Нажатие на значок Выполнить запускает только первую подпрограмму в модуле. Для пример 1., значок Выполнить запускает первую подпрограмму, которая называется "main". Подпрограмма main вызывает подпрограмму HelloWorld2, отображающую диалог показанный нарис. 17.11. Нажмите OK для закрытия диалога или нажмите Отмена для остановки макроса. Рис. 17.11. Нажмите OK для закрытия диалога. Значок Выполнить всегда запускает первый макрос в текущем модуле. В результате, требуются различные ухищрения для запуска HelloWorld1. Для запуска HelloWorld1 Вы можете использовать один из следующих методов:
Чтобы использовать диалоговое окно Макрос для запуска любой подпрограммы в модуле, выполните следующие шаги:
Код, используемый в этой главе, доступен в текстовом документе OpenOffice.org по имени SC01.sxw. Загрузите и откройте этот документ. Когда документ, содержащий макроопределение открывается, OpenOffice.org выдает предупреждение (смотририс. 17.12). Это предупреждение помогает Вам избежать случайного запуска макроса, содержащего вирус. Хотя Вы можете вручную запускать любой макрос используя диалог Макрос, кнопки с привязанными макросами в документе не будут функционировать. Нажмите Включить макросы, чтобы полностью разрешить применение кнопок с макросами, добавленными в SC01.sxw. Рис. 17.12. Вы только открываете OpenOffice.org документ, который содержит макрос.
SC01.sxw содержит три кнопки: Main, Hello World 1 и Hello World 2. Каждая кнопка сформирована для запуска соответствующей подпрограммы, когда на кнопку нажимают. Кнопки ничего не делают, если Вы нажимаете Отключить макросы при загрузке документа. Возможно добавить каталог в список "безопасных путей". Если Вы уверены, что каталог содержит документы, которым Вы можете полностью доверять, что они не содержат макровирусы, Вы можете добавить путь к данному каталогу в список безопасных путей. Используйте Сервис > Параметры > OpenOffice.org > Безопасность > Безопасность макросов > Доверенные источники и добавьте соответствующие месторасположения файлов, которым доверяете. Все документы, загруженные из доверенных источников, будут считаться безопасными, и макросы всегда будут запускаться. Хранение макроса в библиотеке приложенийПриложение OpenOffice.org само является контейнером библиотек. Это превосходное место для хранения кода и диалогов, общих для многих документов. Контроль версии легче, если макросы сохранены в одном месте. Если пять документов, все содержат один и тот же макрос, мало того, что область памяти потрачена впустую, но если макрос изменяется, Вы должны изменить макрос в пяти различных документах. Для хранения макросов в библиотеках приложения используйте те же самые методы, которые используются для документов. Контейнер уровня приложения использует два названия, "Мои макросы" и "Макросы OpenOffice.org". Приложение OOo включает множество библиотек, сохраненных как "Макросы OpenOffice.org". Используйте диалог Управление макросами на рис. 17.3для добавления новых библиотек.
Каждая библиотека приложения сохраняется в своем собственном каталоге. Чтобы определить, где OpenOffice.org хранит библиотеки приложения, выберите Сервис > Параметры . В диалоге Параметры раскройте ветку OpenOffice.org в дерево меню и выберите Меню. Объект Basic показывает местоположение внешних библиотек. Перед установкой новой версии OpenOffice.org сделайте копию всех библиотек прикладного уровня. Если Вы устанавливаете OOo в то же самое место, будет перезаписан файл конфигурации, который говорит OOo, где располагаются ваши библиотеки прикладного уровня. Библиотеки - обычно все еще там, но OOo не знает о них. Для восстановления потерянных библиотек, независимо от того, где они расположены, используют вкладку Библиотеки диалога Управление макросами (рис. 17.3). Проверьте, что "Мои макросы" выбраны в списке Приложение/Документ, и затем нажмите кнопку Добавить . Перейдите в каталог, содержащий библиотеку, которую Вы хотите добавить. Выберите файл script.xlb и нажмите Открыть . Сделайте это для каждой библиотеки, которую Вы хотите восстановить. Этот метод может также использоваться для добавления библиотек, сохраненных в документах.
Для практики добавьте макрос в библиотеку прикладного уровня, откройте диалог Управление макросами. Проверьте, что контейнер библиотек "Мои макросы" – текущий контейнер. Нажмите кнопку Создать для добавления нового модуля в библиотеку прикладного уровня. Для добавления библиотеки перейдите на вкладку Библиотеки. Проверьте, что "Мои макросы" выбраны в списке Приложение/ Документ, и затем нажмите кнопку Создать . Библиотеки, сохраненные в документах, могут быть добавлены в контейнер библиотеки приложения. Когда библиотека добавляется, она перезаписывает существующую библиотеку с тем же самым названием. Поэтому хорошая идея – создать значащее имя для библиотеки, содержащей макросы. Это ограничивает проблемы, возникающие при перемещении макросов между контейнерами библиотеки. Интегрированная среда разработкиИнтегрированная среда разработки (IDE) – ряд программных инструментов, используемых для облегчения создания программного обеспечения. OpenOffice.org включает очень развитую IDE с инструментами, которые осуществляют выполнение, редактирование и поиск ошибок в Ваших макросах. Требуется время, чтобы ознакомиться с ее возможностями. рис. 17.9показывает IDE. Центральная область, где содержится код макроса, – окно редактирования. Многие возможности, такие как Останов, Контрольные точки, Пошаговое выполнение и панель контрольных значений, служат простыми, но эффективными средствами для отладки кода макроса. Этот раздел дает краткий обзор стандартных функций IDE. Не удивляйтесь, если Вы полностью не понимаете, как использовать их всех в этом месте. Вы познакомитесь с этими функциями, поскольку Вы будете работать по примерам. Первый набор функций используется для отладки, а описанные в конце этого раздела поддерживают формирование и управление объектами в ваших макропрограммах, библиотеках и документах. Ниже приведены описания значков. Значок Компиляция компилирует и выполняет проверку синтаксиса только текущего модуля. Значок Компиляция полезен, если Вы не хотите выполнять макрос но хотите проверить, что он не содержит синтаксических ошибок. Сообщения не отображаются, если ошибка не найдена (рис. 17.10). Когда найдена ошибка, появляется диалог, указывающий на ошибку. Стрелка в колонке Контрольной точки отмечает строку с ошибкой и часть кода, который вызвал ошибку, выделена. Нажмите кнопку OK для закрытия окна сообщения об ошибке.
Значок Выполнить компилирует все модули в текущей библиотеке и затем выполняет первую подпрограмму или функцию в текущем модуле. Это отличается от действия значка Компиляция, который компилирует только текущий модуль. Значок Остановить макрос останавливает выполнение макроса. Когда Вы нажимаете на этот значок, Вы не можете продолжить выполнение макроса; Вы должны запустить его снова, с начала. Значок Остановить макрос доступен, только когда макрос выполняется. Когда доступен, значок Остановить напоминает транспортный знак остановки. Значок Шаг без захода выполняет текущее утверждение. Если макрос еще не выполняется, первая подпрограмма в модуле запускается и отмечается как текущее утверждение. Текущее утверждение имеет стрелку в колонке Контрольной точки, и курсор перемещается в эту строку. Если, однако, макрос уже выполняется, выполняется текущее утверждение и следующее выполняемое утверждение помечается как текущее. Значок Шаг без захода рассматривает вызовы других подпрограмм как одно утверждение и не осуществляет пошаговое выполнение внутри них. Заметьте, что значок имеет стрелку, которая огибает фигурные скобки, представляющие вызов подпрограммы или функции. Значок Шаг с заходом выполняет текущее утверждение. Поведение такое же, как у значка Шаг без захода, за исключением того, что подпрограммы и функции не рассматривают как одно утверждение. Каждое утверждение в вызываемой подпрограмме считается утверждением. Подпрограммы и функции выполняются пошагово внутри, отмечая определение вызванной подпрограммы или функции как текущее утверждение. Заметьте, что значок содержит стрелку, которая направлена в фигурные скобки, представляющие вызов подпрограммы или функции. Значок Выход на верхний уровень выполняет макрос до конца текущей подпрограммы и затем выходит из нее. Эффект тот же самый, как повторяющееся нажатие на значок Шаг с заходом, пока последнее утверждение в текущей подпрограмме (End Sub или End Function) не станет текущим, и затем нажатие Шаг с заходом еще раз для выхода из подпрограммы. Утверждение после вызова текущей подпрограммы становится текущим утверждением. Если Вы случайно нажмете Шаг с заходом вместо Шаг без захода, нажмите один раз значок Выход на верхний уровень. Заметьте, что значок содержит стрелку, которая покидает фигурные скобки, представляющие вызов подпрограммы или функции. Значок Точка останова устанавливает контрольную точку в утверждении, содержащем курсор. Красный признак останова отмечает строку в столбце точек останова. Двойной щелчок по столбцу точек останова устанавливает точку останова в этом утверждении. Щелчок правой кнопкой мыши на точке останова в столбце точек останова активирует или деактивирует ее. Значок Управление точками останова открывает диалог Точки останова (рис. 17.13). Рис. 17.13. Ручное редактирование и формирование точек останова Значок Включить инспектор предполагает, что текущее слово (слово, в котором находится курсор при нажатии на значок) – переменная и добавляет имя этой переменной в панель Инспектора. Значок Каталог объектов открывает окно Объекты (рис. 17.14), где Вы можете просмотреть все доступные в настоящее время контейнеры библиотек. Используйте это окно, чтобы видеть, какие библиотеки, модули и подпрограммы являются доступными. Выполните двойной щелчок мышью на подпрограмме для загрузки ее в IDE. Функциональные возможности подобны Навигатору в документе OOo Writer. Вы должны сохранить файл прежде, чем его модули будут доступны в Каталоге Объектов.
Значок Выбрать макрос загружает диалог Макрос. Выбирая Сервис > Макрос > Управление макросами > OpenOffice.org Basic Вы также загружаете диалог Макрос. Значок Выбрать модуль загружает диалог Управление макросами. Этот значок имеет тот же самый эффект, что и нажатие на кнопку Управление в диалоге Макрос (рис. 17.2ирис. 17.3). Выберите или поместите курсор непосредственно слева от круглой скобки, затем нажмите значок Найти скобку для поиска парной круглой скобки. Когда IDE находит парную круглую скобку, она выделяет парные круглые скобки и все, что они охватывают. Рис. 17.14. Вы можете просмотреть доступные библиотеки и модули в окне Объекты Чтобы открыть окно Элементы управления, нажмите значок Вставить элементы управления при редактировании диалога. (Для получения дополнительной информации о элементах управления "Урок 17" Чтобы создать диалог для редактирования, нажмите значок Выбрать модуль для загрузки диалога Управление макросами. Перейдите на вкладку Диалоги и нажмите кнопку Новый диалог для создания нового диалога. "Урок 17" OpenOffice.org Macros Explained для получения дополнительной информации об использовании и создании диалогов в макросах. Последние два значка, Вставить код Basic и Сохранить Basic , используются для вставки в текущий модуль текста, сохраненного во внешний исходный файл, и для сохранения текущего модуля во внешний текстовый файл. Это прекрасный способ создать резервную копию макроса или создать текстовый файл, который можно легко послать другому человеку. Это отличается от значка Сохранить , который используется для сохранения всей библиотеки или документа, содержащего модуль. Использование точек остановаЕсли Вы установите точку останова в коде, то макрос прекратит выполнение в этой точке. Вы можете тогда проверить переменные, продолжить выполнение макроса или осуществить пошаговое выполнение макроса. Если макрос терпит неудачу, и Вы не знаете почему, пошаговое выполнение (выполнение одного утверждения за шаг) позволит Вам наблюдать макрос в действии. Когда макрос терпит неудачу, Вы будете знать, где это происходит. Если большое количество утверждений выполняется перед проблемным участком, так что не реально пошаговое выполнение, таким образом Вы можете установить точку останова в или около строки, которая вызывает проблему. Программа прекращает выполнение в этой точке, и Вы можете продолжить пошаговое выполнение макроса и наблюдать его поведение. Значок Точка останова устанавливает контрольную точку в утверждении, содержащем курсор. Красный знак останова отмечает строку в колонке точки останова. Двойной щелчок в колонке точки останова также устанавливает точку останова в этом утверждении. Щелчок правой кнопкой мыши на точке останова в колонке точки останова активирует и деактивирует ее. Значок Управление точками останова загружает диалог Точки останова (рис. 17.13). Все активные точки останова в текущем диалоге IDE появляются в нижнем списке. Для добавления точки останова введите номер строки в поле ввода сверху и затем нажмите Создать . Для удаления точки останова выделите точку останова в списке и нажмите кнопку Удалить . Очистка флажка Вкл./Выкл . запрещает выделенную точку останова без ее удаления. Поле ввода Пропусков указывает количество раз, которое контрольная точка должна быть пройдена прежде, чем она будет считаться активной. Если количество пропусков четыре (4), то в четвертый раз, когда утверждение, содержащее контрольную точку, будет выполняться, произойдет останов выполнения. Это чрезвычайно полезно, когда часть макроса не вызывает ошибок, пока ее не вызвали многократно. Есть две вещи, которые заставляют игнорировать точку останова: не нулевое количество проходов и явная маркировка точки останова как "не активная" в диалоге Точки останова. Каждая точка останова имеет счетчик проходов, который является декрементным к нулю, когда она достигнута. Если результат декремента - ноль, контрольная точка становится активной и остается активной, потому что счетчик проходов остается в дальнейшем в нуле. Счетчик проходов не восстанавливается к его исходному значению, когда макрос заканчивается или повторно запускается. Легко контролировать значение переменных из IDE во время выполнения программы. Поместите курсор рядом или в любое слово в окне редактирования и нажмите значок Включить инспектор для добавления слова в панель Инспектора. Панель инспектора отображает значения переменных, доступных в настоящее время. Текст "<Не доступно>" отображается для недоступных переменных. Другой способ добавить переменную в панель инспектора – ввести имя в поле Контрольное значение и нажать Enter . Для удаления имени из панели инспектора выделите его или введите имя в поле Контрольное значение и нажмите значок Удалить контрольное значение . Нажатие на имя в панели инспектора помещает имя в поле Контрольное значение. Возможности окна инспектора были расширены в OOo 2.0. Например, Вы можете теперь наблюдать массив или объектную переменную; это очень впечатляет.
Управление библиотекамиЭтот раздел имеет дело с созданием, перемещением и переименованием библиотек и модулей. Рассматривая управление библиотеками, важно сначала понять некоторые основы, которые уже обсуждались:
Как сохраняются библиотекиБиблиотеки OpenOffice.org сохраняются как файлы XML, которые являются легко редактируемыми при использовании любого текстового редактора. Другими словами, легко случайно повредить ваши файлы. Ручное редактирование ваших внешних библиотек вообще считается глупым, я имел по крайней мере один случай, где это требовалось, потому что 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.15. Диалоги Макрос и Управление макросами отображают доступные библиотеки и модули Файлы dialog.xlc и script.xlc содержат ссылки на все диалоги и библиотеки, которые известны OOo. Видимые библиотеки — которые видны в диалогах Макрос и Управление макросами (рис. 17.15) — построены из файлов dialog.xlc и script.xlc. Если эти два файла будут перезаписаны, то OOo не будет знать о ваших личных библиотеках, даже если они будут существовать. Диалог Управление макросами показывает, что библиотека PitonyakDialogs содержит один диалог; перейдите на вкладку Модули, чтобы увидеть модули кода. Ниже таблица содержит листинг файлов в каталоге PitonyakDialogs. Заметьте, что каждый модуль и диалог в библиотеке имеют соответствующий файл.
Файлы 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.
Использование диалога Управление макросамиДиалог Управление макросами ( Сервис > Макрос > Управление макросами > OpenOffice.org Basic > Управление ) в состоянии удовлетворить потребности большинства пользователей по управлению модулями и библиотеками. Вкладка Модули диалога Управление макросами (рис. 17.2) обеспечивает возможность создавать и удалять модули. Диалог Управление макросами также имеет вкладку Библиотеки (рис. 17.16), используемую для создания и удаления библиотек. Вкладка Библиотеки содержит сверху поле с выпадающим списком, которое используется для выбора контейнера библиотек. Другими словами, Вы можете выбрать определенный открытый документ или библиотеку приложения.
Рис. 17.16. Использование диалога Управление макросами для создания, добавления и удаления библиотек Переименование модулей и библиотекВы можете изменить название модуля или библиотеки из диалога Управление макросами. Имена модулей изменяются на вкладке Модули, а названия библиотек изменяются на вкладке Библиотеки. Когда Вы изменяете название библиотеки или модуля, это не изменяет ссылок, содержащихся в макросах. Например, если я записываю ваш номер телефона в моем Palm Pilot и Вы изменяете ваш номер телефона, мой Palm Pilot автоматически не обновляется. Итак, возможно ли вызвать макрос?
Переименование библиотеки или модуля не плохая вещь для исполнения; только помните, что объекты, которые ссылаются на модули и библиотеки, не будут обновлены. Если ничто не ссылается на ваш код, не стесняйтесь изменять имена библиотек и модулей. Вы можете переименовать библиотеки и модули с использованием диалога Управление макросами; процедура одинакова для обоих:
Я имел большой документ, который содержал много кнопок. Кнопки вызывали макросы в библиотеке и я должен был изменить название библиотеки. К сожалению, после того, как я изменил название библиотеки, кнопки все еще указывали на первоначальную библиотеку, которая больше не существовала. Чувствуя себя особенно смелым, я разархивировал документ во временный каталог (помните, что файл документа OOo в действительности файл ZIP, содержащий много файлов, которые, в целом, документ). Я тогда использовал мой любимый текстовый редактор для загрузки каждого файла, и изменил старое название библиотеки на новое. Когда я закончил, я заархивировал все файлы и каталоги назад в единый файл ZIP, и я успешно изменил все ссылки.
Добавление библиотекКнопка Добавить рис. 17.16 в диалоге Управление макросами открывает диалог Добавить библиотеки, который в действительности является диалогом выбора файла. Этот диалог используется для выбора файла, который содержит библиотеку для добавления. Для добавления библиотеки, содержащейся в документе, начните с выбора документа. Кнопка Открыть в окне выбора файла диалога Добавить библиотеки открывает окно выбора библиотек диалога Добавить библиотеки (рис. 17.17). Используйте окно выбора библиотек диалога Добавить библиотеки для просмотра библиотек, содержащихся в выбранном документе и выбора библиотек, которые Вы хотите добавить. Окно выбора библиотек диалога Добавить библиотеки на рис. 17.17позволяет Вам добавить столько библиотек, сколько Вы хотите. Существующие библиотеки не перезаписываются, если флажок "Заменить существующие библиотеки" не установлен. Флажок "Вставить как ссылку" доступен, только если добавляются библиотеки, которые не содержатся в документе. Нажмите OK для добавления выбранных библиотек. Рис. 17.17. Использование диалога Добавить библиотеки для выбора библиотек для добавления
Библиотеки, которые не содержатся в документе, сохраняются в отдельных каталогах. Для добавления библиотеки, которая сохранена не в документе, откройте окно выбора файла диалога Добавить библиотеки (18) и выберите справочник, содержащий файлы библиотеки. Не имеет значения, где сохранены файлы библиотеки. Файлы могут быть на дискете как резервная копия, или они могут быть в том же самом каталоге, используемом OOo для библиотек прикладного уровня. Когда я устанавливаю новую версию OpenOffice.org, я добавляю библиотеки от моей предыдущей установки OOo. Когда добавляется библиотека, которая не содержится в документе, видны два файла: dialog.xlb и script.xlb (смотри таблица 17.2 и рис. 17.18). Оба файла требуются и автоматически добавляются, независимо от того, какой файл Вы выберите. Другими словами, Вы можете выбрать dialog.xlb или script.xlb; оба будут добавлены. Рис. 17.18. Не имеет значения, какой файл Вы выберите, добавляются оба
"Урок 16" в OpenOffice.org Macros Explained содержит информацию и примеры управления и вызова библиотек и модулей с использованием OOo Basic. ЗаключениеМакросы сохраняются в модулях, модули сохраняются в библиотеках, а библиотеки сохраняются в контейнерах библиотек. Приложение – контейнер библиотек, также как и каждый документ. IDE используется для создания и отладки макросов и диалогов. Вы только что закончили один из самых трудных шагов в написании макросов для OpenOffice.org: написали Ваш первый макрос! Вы теперь готовы исследовать другие примеры макросов и создавать свои собственные.
|
|
Скачать бесплатно книги, учебники, журналы. | ||||||||||||||||||||||