Доступно и просто |
|
|
Введение в OpenOffice.org Basic |
Автор Mark Alexander Bain | |
08.03.2008 г. | |
Перевод: BigAndy Одним из свойств Open Office.org, которое некоторые пользователи упускают из вида, является встроенный язык программирования OpenOffice.org Basic. Для чего нужно встраивать язык программирования в ваш текcтовый процессор? Именно для того, чтобы автоматизировать часто выполняемые задачи. Чай за тебя не приготовит, но позволит автоматизировать часто выполняемую работу с минимумом усилий. Вы можете, например, захотеть сгенерировать данные из командной строки и представить их как таблицу в документе Writer или вы можете получить данные из других источников и сформатировать их для еженедельного отчета или письма клиенту. Каждая из этих задач требует значительных затрат времени, если их выполнять вручную, но OpenOffice.org Basic сможет помочь минимизировать время, которое вы проведете, выполняя рутинные вещи, и позволяет высвободить больше времени для более интересных занятий. Создание макроса OpenOffice.orgИтак, как начать модификацию OpenOffice.org Writer с целью сделать его немножечко лучше? Для начала вы должны создать подпрограмму Basic или функцию, которые обычно именуются макросами. Перейдите в меню Writer и кликните на пункте Сервис. Вы увидете подменю, называемое Макросы. Если вы поместите указатель мыши на него, увидете опции макросов, доступные для вас. Нас в данный момент интересует пункт Управление макросами. Из следующего подменю выберите OpenOffice.org Basic....
Теперь вы сможете создать свой первый макрос. По традиции начнем с «Hello, world» Выполнение макросаЕстественно, вы захотите увидеть результат вашей тяжкой работы. Вернитесь в окно OpenOffice.org Writer. Перейдите в меню и опять выберите меню Сервис -> Макросы. Теперь вы можете использовать либо пункт Управление макросами, либо просто использовать кнопочку Выполнить макрос на панели инструментов. Существует второй, более простой и полезный способ выполнения макроса после того, как вы его отладили. Вы можете назначить макрос пунктам меню, клавиатурным сокращениям и событиям. Более сложный макросТеперь посмотрим на макрос OpenOffice.org Basic, который имеет практическое применение. Следующий пример макроса преобразует документ, который использует Английский язык Великобритании в Американский Английский диалект. Если вы прежде использовали Visual Basic или VBScript в Windows, вы должны узнать основной формат и функциональность. Если нет, возможно, понадобится небольшое объяснение. Записаны две подпрограммы: toUsaSpelling и doReplace. Подпрограмма toUsaSpelling создает два массива searchArray и replaceArray, содержащие английские слова и их американские эквиваленты. Она (подпрограмма) далее пошагово перебирает вышеупомянутый массив и вызывает подпрограмму doReplace, которая через две входные переменные и заменяет одно слово другим во всем документе OpenOffice.org. OpenOffice.org Basic использует все типы привычных циклов и управляющих структур, которые вы найдете в любом языке программирования, наравне с некоторыми, пришедшими непосредственно из Visual Basic. Например, doReplace использует функцию ubound,котроая возвращает наибольший номер индекса массива. Эта функция полезна в циклах, так как в этом случае вам не надо отслеживать текущий размер массива. Заметьте, что doReplace ссылается на ThisComponent. ThisComponent представляет текущий документ OpenOffice.org. Следующее: Вставка информации из внешнего файла.Заполнение данных в таблицы может стать самой затратной по времени частью при создании отчета, но таблицы делают документ более читабельным, так что стоит побеспокоиться об автоматизации процесса. Следующий макрос открывает файл и загружает данные из него в таблицу. Таким образом, таблица заполняется значениями полей имени пользователя и домашней директории из файла /etc/passwd: Sub doPasswdTable While not EOF(filenumber) doc = thisComponent cell = table.getCellByName("A1") filenumber = Freefile Большая часть кода достаточно стандартна - вы можете видеть пример операторов циклов while..wend и if..end if. Вы также можете обратить внимание на оператор doc=thisComponent; который позволяет нам ссылаться на doc вместо более длинного обозначения thisComponent. Неочевидная деталь: синтаксис Basic не регистрозависимый. Поэтому оператор cell = table.getCellByName("A" & lineNumber) будет выполняться так же, как CELL = table.getcellbyname("A" & LINENUMBER). Мы применяем верхние и нижние регистры только для того, чтобы было легче читать. Строка filenumber = Freefile присваивает значение уникального идентификатора ID переменной номера файла для того, чтобы вам не было необходимым запоминать любые другие уже назначенные ID. Команда split особенно полезна. Она получает в качестве входных данных строку и возвращает массив подстрок данной строки, разбитой по разделителю, который вы указали. В вышеприведенном примере мы использовали двоеточие (:) для определения разделителя в файле паролей. И последнее: одна строка может показаться странной на первый взгляд: Open file For Input As filenumber. В заключение:Мы привели кратчайшее из возможных введений в использование Basic в OpenOffice.org Writer. Мы не рассматривали использование форм, вызовы из других документов, или то, как получать данные из баз данных. Если вы хотите узнать больше о программировании в OpenOffice.org Basic, то OpenOffice.org поставляется со справкой, в которой есть список всех функций и процедур, которые возможны[1]. OpenOffice.org Basic - полезный инструмент для автоматизации каждодневных задач - ещё один путь для более разумного подхода к работе. Обсудить на форуме...
|
|
Последнее обновление ( 25.08.2012 г. ) |
След. » |
---|
MyOOo.ru, 2008 — 2024. Хостинг предоставлен компанией Netangels