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

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

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

Хранение макроса в библиотеке приложений

Приложение OpenOffice.org само является контейнером библиотек. Это превосходное место для хранения кода и диалогов, общих для многих документов. Контроль версии легче, если макросы сохранены в одном месте. Если пять документов, все содержат один и тот же макрос, мало того, что область памяти потрачена впустую, но если макрос изменяется, Вы должны изменить макрос в пяти различных документах.

Для хранения макросов в библиотеках приложения используйте те же самые методы, которые используются для документов. Контейнер уровня приложения использует два названия, "Мои макросы" и "Макросы OpenOffice.org". Приложение OOo включает множество библиотек, сохраненных как "Макросы OpenOffice.org". Используйте диалог Управление макросами на рис. 17.3 для добавления новых библиотек.

Внимание Удаление OpenOffice.org может удалить библиотеки, сохраненные в уровне приложения, таким образом Вы должны всегда держать резервную копию ваших библиотек. Переустановка или установка новой версии OpenOffice.org могут перезаписать библиотеки уровня приложения. Создавайте резервную копию этих библиотек, когда вы создаете резервную копию Ваших документов. В большинстве случаев, библиотеки, которые Вы создали, все еще там, но файлы конфигурации обновились и не отражают новые библиотеки. Поэтому, обычно возможно восстановить ваши библиотеки из стандартного местоположения библиотек. Для получения дополнительной информации смотри раздел "Управление библиотеками" далее в этой главе.

Каждая библиотека приложения сохраняется в своем собственном каталоге. Чтобы определить, где OpenOffice.org хранит библиотеки приложения, выберите Сервис > Параметры. В диалоге Параметры раскройте ветку OpenOffice.org в дерево меню и выберите Меню. Объект Basic показывает местоположение внешних библиотек.

Перед установкой новой версии OpenOffice.org сделайте копию всех библиотек прикладного уровня. Если Вы устанавливаете OOo в то же самое место, будет перезаписан файл конфигурации, который говорит OOo, где располагаются ваши библиотеки прикладного уровня. Библиотеки - обычно все еще там, но OOo не знает о них. Для восстановления потерянных библиотек, независимо от того, где они расположены, используют вкладку Библиотеки диалога Управление макросами ( рис. 17.3). Проверьте, что "Мои макросы" выбраны в списке Приложение/Документ, и затем нажмите кнопку Добавить. Перейдите в каталог, содержащий библиотеку, которую Вы хотите добавить. Выберите файл script.xlb и нажмите Открыть. Сделайте это для каждой библиотеки, которую Вы хотите восстановить. Этот метод может также использоваться для добавления библиотек, сохраненных в документах.

СОВЕТ Не используйте библиотеку Standard, если Вы думаете, что Вы захотите когда-либо добавить вашу библиотеку в другое место. Храните все ваши модули, которые Вы создаете, в библиотеках со значащими названиями. Библиотека Standard является особенной, и Вы не можете удалить ее или перезаписать.

Для практики добавьте макрос в библиотеку прикладного уровня, откройте диалог Управление макросами. Проверьте, что контейнер библиотек "Мои макросы" – текущий контейнер. Нажмите кнопку Создать для добавления нового модуля в библиотеку прикладного уровня. Для добавления библиотеки перейдите на вкладку Библиотеки. Проверьте, что "Мои макросы" выбраны в списке Приложение/ Документ, и затем нажмите кнопку Создать.

Библиотеки, сохраненные в документах, могут быть добавлены в контейнер библиотеки приложения. Когда библиотека добавляется, она перезаписывает существующую библиотеку с тем же самым названием. Поэтому хорошая идея – создать значащее имя для библиотеки, содержащей макросы. Это ограничивает проблемы, возникающие при перемещении макросов между контейнерами библиотеки.

Интегрированная среда разработки

Интегрированная среда разработки (IDE) – ряд программных инструментов, используемых для облегчения создания программного обеспечения. OpenOffice.org включает очень развитую IDE с инструментами, которые осуществляют выполнение, редактирование и поиск ошибок в Ваших макросах. Требуется время, чтобы ознакомиться с ее возможностями. рис. 17.9 показывает IDE. Центральная область, где содержится код макроса, – окно редактирования. Многие возможности, такие как Останов, Контрольные точки, Пошаговое выполнение и панель контрольных значений, служат простыми, но эффективными средствами для отладки кода макроса.

Этот раздел дает краткий обзор стандартных функций IDE. Не удивляйтесь, если Вы полностью не понимаете, как использовать их всех в этом месте. Вы познакомитесь с этими функциями, поскольку Вы будете работать по примерам. Первый набор функций используется для отладки, а описанные в конце этого раздела поддерживают формирование и управление объектами в ваших макропрограммах, библиотеках и документах. Ниже приведены описания значков.

Значок Компиляция компилирует и выполняет проверку синтаксиса только текущего модуля. Значок Компиляция полезен, если Вы не хотите выполнять макрос но хотите проверить, что он не содержит синтаксических ошибок. Сообщения не отображаются, если ошибка не найдена ( рис. 17.10). Когда найдена ошибка, появляется диалог, указывающий на ошибку. Стрелка в колонке Контрольной точки отмечает строку с ошибкой и часть кода, который вызвал ошибку, выделена. Нажмите кнопку OK для закрытия окна сообщения об ошибке.

Примечание Процесс компиляции переводит макроопределение OOo на машинный язык, который компьютер может понять и выполнить.

Значок Выполнить компилирует все модули в текущей библиотеке и затем выполняет первую подпрограмму или функцию в текущем модуле. Это отличается от действия значка Компиляция, который компилирует только текущий модуль.

Значок Остановить макрос останавливает выполнение макроса. Когда Вы нажимаете на этот значок, Вы не можете продолжить выполнение макроса; Вы должны запустить его снова, с начала. Значок Остановить макрос доступен, только когда макрос выполняется. Когда доступен, значок Остановить напоминает транспортный знак остановки.

Значок Шаг без захода выполняет текущее утверждение. Если макрос еще не выполняется, первая подпрограмма в модуле запускается и отмечается как текущее утверждение. Текущее утверждение имеет стрелку в колонке Контрольной точки, и курсор перемещается в эту строку. Если, однако, макрос уже выполняется, выполняется текущее утверждение и следующее выполняемое утверждение помечается как текущее. Значок Шаг без захода рассматривает вызовы других подпрограмм как одно утверждение и не осуществляет пошаговое выполнение внутри них. Заметьте, что значок имеет стрелку, которая огибает фигурные скобки, представляющие вызов подпрограммы или функции.

Значок Шаг с заходом выполняет текущее утверждение. Поведение такое же, как у значка Шаг без захода, за исключением того, что подпрограммы и функции не рассматривают как одно утверждение. Каждое утверждение в вызываемой подпрограмме считается утверждением. Подпрограммы и функции выполняются пошагово внутри, отмечая определение вызванной подпрограммы или функции как текущее утверждение. Заметьте, что значок содержит стрелку, которая направлена в фигурные скобки, представляющие вызов подпрограммы или функции.

Значок Выход на верхний уровень выполняет макрос до конца текущей подпрограммы и затем выходит из нее. Эффект тот же самый, как повторяющееся нажатие на значок Шаг с заходом, пока последнее утверждение в текущей подпрограмме (End Sub или End Function) не станет текущим, и затем нажатие Шаг с заходом еще раз для выхода из подпрограммы. Утверждение после вызова текущей подпрограммы становится текущим утверждением. Если Вы случайно нажмете Шаг с заходом вместо Шаг без захода, нажмите один раз значок Выход на верхний уровень. Заметьте, что значок содержит стрелку, которая покидает фигурные скобки, представляющие вызов подпрограммы или функции.

Значок Точка останова устанавливает контрольную точку в утверждении, содержащем курсор. Красный признак останова отмечает строку в столбце точек останова. Двойной щелчок по столбцу точек останова устанавливает точку останова в этом утверждении. Щелчок правой кнопкой мыши на точке останова в столбце точек останова активирует или деактивирует ее.

Значок Управление точками останова открывает диалог Точки останова ( рис. 17.13).

Ручное редактирование и формирование точек останова

Рис. 17.13. Ручное редактирование и формирование точек останова

Значок Включить инспектор предполагает, что текущее слово (слово, в котором находится курсор при нажатии на значок) – переменная и добавляет имя этой переменной в панель Инспектора.

Значок Каталог объектов открывает окно Объекты ( рис. 17.14), где Вы можете просмотреть все доступные в настоящее время контейнеры библиотек. Используйте это окно, чтобы видеть, какие библиотеки, модули и подпрограммы являются доступными. Выполните двойной щелчок мышью на подпрограмме для загрузки ее в IDE. Функциональные возможности подобны Навигатору в документе OOo Writer. Вы должны сохранить файл прежде, чем его модули будут доступны в Каталоге Объектов.

СОВЕТ

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

Значок Выбрать макрос загружает диалог Макрос. Выбирая Сервис > Макрос > Управление макросами > OpenOffice.org Basic Вы также загружаете диалог Макрос.

Значок Выбрать модуль загружает диалог Управление макросами. Этот значок имеет тот же самый эффект, что и нажатие на кнопку Управление в диалоге Макрос ( рис. 17.2 и рис. 17.3).

Выберите или поместите курсор непосредственно слева от круглой скобки, затем нажмите значок Найти скобку для поиска парной круглой скобки. Когда IDE находит парную круглую скобку, она выделяет парные круглые скобки и все, что они охватывают.

 Вы можете просмотреть доступные библиотеки и модули в окне Объекты

Рис. 17.14. Вы можете просмотреть доступные библиотеки и модули в окне Объекты

Чтобы открыть окно Элементы управления, нажмите значок Вставить элементы управления при редактировании диалога. (Для получения дополнительной информации о элементах управления "Первые шаги в работе с макросами"

Чтобы создать диалог для редактирования, нажмите значок Выбрать модуль для загрузки диалога Управление макросами. Перейдите на вкладку Диалоги и нажмите кнопку Новый диалог для создания нового диалога. "Первые шаги в работе с макросами" OpenOffice.org Macros Explained для получения дополнительной информации об использовании и создании диалогов в макросах.

Последние два значка, Вставить код Basic и Сохранить Basic , используются для вставки в текущий модуль текста, сохраненного во внешний исходный файл, и для сохранения текущего модуля во внешний текстовый файл. Это прекрасный способ создать резервную копию макроса или создать текстовый файл, который можно легко послать другому человеку. Это отличается от значка Сохранить , который используется для сохранения всей библиотеки или документа, содержащего модуль.

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

Если Вы установите точку останова в коде, то макрос прекратит выполнение в этой точке. Вы можете тогда проверить переменные, продолжить выполнение макроса или осуществить пошаговое выполнение макроса. Если макрос терпит неудачу, и Вы не знаете почему, пошаговое выполнение (выполнение одного утверждения за шаг) позволит Вам наблюдать макрос в действии. Когда макрос терпит неудачу, Вы будете знать, где это происходит. Если большое количество утверждений выполняется перед проблемным участком, так что не реально пошаговое выполнение, таким образом Вы можете установить точку останова в или около строки, которая вызывает проблему. Программа прекращает выполнение в этой точке, и Вы можете продолжить пошаговое выполнение макроса и наблюдать его поведение.

Значок Точка останова устанавливает контрольную точку в утверждении, содержащем курсор. Красный знак останова отмечает строку в колонке точки останова. Двойной щелчок в колонке точки останова также устанавливает точку останова в этом утверждении. Щелчок правой кнопкой мыши на точке останова в колонке точки останова активирует и деактивирует ее.

Значок Управление точками останова загружает диалог Точки останова ( рис. 17.13). Все активные точки останова в текущем диалоге IDE появляются в нижнем списке. Для добавления точки останова введите номер строки в поле ввода сверху и затем нажмите Создать. Для удаления точки останова выделите точку останова в списке и нажмите кнопку Удалить. Очистка флажка Вкл./Выкл. запрещает выделенную точку останова без ее удаления. Поле ввода Пропусков указывает количество раз, которое контрольная точка должна быть пройдена прежде, чем она будет считаться активной. Если количество пропусков четыре (4), то в четвертый раз, когда утверждение, содержащее контрольную точку, будет выполняться, произойдет останов выполнения. Это чрезвычайно полезно, когда часть макроса не вызывает ошибок, пока ее не вызвали многократно.

Есть две вещи, которые заставляют игнорировать точку останова: не нулевое количество проходов и явная маркировка точки останова как "не активная" в диалоге Точки останова. Каждая точка останова имеет счетчик проходов, который является декрементным к нулю, когда она достигнута. Если результат декремента - ноль, контрольная точка становится активной и остается активной, потому что счетчик проходов остается в дальнейшем в нуле. Счетчик проходов не восстанавливается к его исходному значению, когда макрос заканчивается или повторно запускается.

Легко контролировать значение переменных из IDE во время выполнения программы. Поместите курсор рядом или в любое слово в окне редактирования и нажмите значок Включить инспектор для добавления слова в панель Инспектора. Панель инспектора отображает значения переменных, доступных в настоящее время. Текст "<Не доступно>" отображается для недоступных переменных. Другой способ добавить переменную в панель инспектора – ввести имя в поле Контрольное значение и нажать Enter. Для удаления имени из панели инспектора выделите его или введите имя в поле Контрольное значение и нажмите значок Удалить контрольное значение . Нажатие на имя в панели инспектора помещает имя в поле Контрольное значение. Возможности окна инспектора были расширены в OOo 2.0. Например, Вы можете теперь наблюдать массив или объектную переменную; это очень впечатляет.

Примечание Переменная, которая находится в пределах видимости, в настоящее время доступна или видима. Например, если переменная "j" определена внутри HelloWorld1, она не видима (недоступна) внутри HelloWorld2. Это обсуждается позже.
< Лекция 16 || Лекция 17: 12345 || Лекция 18 >
юрий лылов
юрий лылов

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

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