libreoffice basic автодополнение кода

Выбор редакции

Топ-30 лучших фильмов про.

Топ-10 лучших фильмов октября.

Топ-20 лучших сериалов про.

Создание автоматически заполняемого шаблона для писем в LibreOffice Writer

libreoffice basic автодополнение кода. cover. libreoffice basic автодополнение кода фото. libreoffice basic автодополнение кода-cover. картинка libreoffice basic автодополнение кода. картинка cover. При использовании пакета LibreOffice, обычные пользователи зачастую даже не догадываются про все возможности, которые предоставляет этот пакет. Набрать текст, оформить его в соответствии с некоторыми требованиями, при необходимости добавить фото и распечатать получившийся документ – вот и все, чем ограничивается работа с текстовым редактором LibreOffice Writer. А его возможности, и в самом деле, гораздо шире. И ничуть не уступают тем, которые есть у самых именитых платных офисных пакетов.

Создание писем-рассылок в программе LibreOffice Writer

При использовании пакета LibreOffice, обычные пользователи зачастую даже не догадываются про все возможности, которые предоставляет этот пакет. Набрать текст, оформить его в соответствии с некоторыми требованиями, при необходимости добавить фото и распечатать получившийся документ – вот и все, чем ограничивается работа с текстовым редактором LibreOffice Writer. А его возможности, и в самом деле, гораздо шире. И ничуть не уступают тем, которые есть у самых именитых платных офисных пакетов.

Одна из таких возможностей – создание нового текстового документа, путем автоматического занесения в него уже имеющейся информации из файла электронных таблиц.

Ставим задачу

Допустим, что есть необходимость создать по определенному образцу большое количество одинаковых документов, и лишь в некоторых местах этих писем следует внести уникальные данные:

libreoffice basic автодополнение кода. Libre rassulka1. libreoffice basic автодополнение кода фото. libreoffice basic автодополнение кода-Libre rassulka1. картинка libreoffice basic автодополнение кода. картинка Libre rassulka1. При использовании пакета LibreOffice, обычные пользователи зачастую даже не догадываются про все возможности, которые предоставляет этот пакет. Набрать текст, оформить его в соответствии с некоторыми требованиями, при необходимости добавить фото и распечатать получившийся документ – вот и все, чем ограничивается работа с текстовым редактором LibreOffice Writer. А его возможности, и в самом деле, гораздо шире. И ничуть не уступают тем, которые есть у самых именитых платных офисных пакетов.

Рис. 1. Образец письма

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

Подготавливаем файлы для слияния

Для того чтобы получить на выходе такие письма (их может быть и несколько сотен), необходимо провести небольшую предварительную работу. В самом обычном редакторе электронных таблиц LibreOffice Calc надо будет создать небольшую базу данных, в которую внести информацию про каждого выпускника.libreoffice basic автодополнение кода. Libre rassulka2. libreoffice basic автодополнение кода фото. libreoffice basic автодополнение кода-Libre rassulka2. картинка libreoffice basic автодополнение кода. картинка Libre rassulka2. При использовании пакета LibreOffice, обычные пользователи зачастую даже не догадываются про все возможности, которые предоставляет этот пакет. Набрать текст, оформить его в соответствии с некоторыми требованиями, при необходимости добавить фото и распечатать получившийся документ – вот и все, чем ограничивается работа с текстовым редактором LibreOffice Writer. А его возможности, и в самом деле, гораздо шире. И ничуть не уступают тем, которые есть у самых именитых платных офисных пакетов.

Рис. 2. Созданная база данных в электронной таблице

Обязательное условие для такой таблицы – в первой строке необходимо указать названия полей. В дальнейшем это позволит правильно подключать к нужным местам необходимую информацию.

Предварительная работа, действительно, не такая простая (список может быть достаточно объемный). Но, единожды создав такой список выпускников (клиентов, товаров, адресов, спецификаций) и постоянно его корректируя, можно создавать сотни писем несколькими щелчками мышки.

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

libreoffice basic автодополнение кода. Libre rassulka3. libreoffice basic автодополнение кода фото. libreoffice basic автодополнение кода-Libre rassulka3. картинка libreoffice basic автодополнение кода. картинка Libre rassulka3. При использовании пакета LibreOffice, обычные пользователи зачастую даже не догадываются про все возможности, которые предоставляет этот пакет. Набрать текст, оформить его в соответствии с некоторыми требованиями, при необходимости добавить фото и распечатать получившийся документ – вот и все, чем ограничивается работа с текстовым редактором LibreOffice Writer. А его возможности, и в самом деле, гораздо шире. И ничуть не уступают тем, которые есть у самых именитых платных офисных пакетов.

Рис. 3. Текстовый шаблон для подключения базы данных

Созданные два файла (текстовый и электронных таблиц) сохраняем в каком-нибудь каталоге (там, где можно будет их легко отыскать).

Устанавливаем связи между файлами

Чтобы в текстовом редакторе воспользоваться информацией, которая хранится в электронных таблицах, необходимо в первую очередь установить связи между этими файлами. Для этого необходимо в текстовом редакторе последовательно выполнить команду: Файл –> Мастер –> Источники данных адресов (см. рисунок).

libreoffice basic автодополнение кода. Libre rassulka4. libreoffice basic автодополнение кода фото. libreoffice basic автодополнение кода-Libre rassulka4. картинка libreoffice basic автодополнение кода. картинка Libre rassulka4. При использовании пакета LibreOffice, обычные пользователи зачастую даже не догадываются про все возможности, которые предоставляет этот пакет. Набрать текст, оформить его в соответствии с некоторыми требованиями, при необходимости добавить фото и распечатать получившийся документ – вот и все, чем ограничивается работа с текстовым редактором LibreOffice Writer. А его возможности, и в самом деле, гораздо шире. И ничуть не уступают тем, которые есть у самых именитых платных офисных пакетов.

Рис. 4. Запускаем мастер слияния документов

Разобраться с меню мастера несложно. В появившемся окошке выбираем пункт «Другой внешний источник данных».

libreoffice basic автодополнение кода. Libre rassulka5. libreoffice basic автодополнение кода фото. libreoffice basic автодополнение кода-Libre rassulka5. картинка libreoffice basic автодополнение кода. картинка Libre rassulka5. При использовании пакета LibreOffice, обычные пользователи зачастую даже не догадываются про все возможности, которые предоставляет этот пакет. Набрать текст, оформить его в соответствии с некоторыми требованиями, при необходимости добавить фото и распечатать получившийся документ – вот и все, чем ограничивается работа с текстовым редактором LibreOffice Writer. А его возможности, и в самом деле, гораздо шире. И ничуть не уступают тем, которые есть у самых именитых платных офисных пакетов.

Рис. 5. Выбираем способ подключения

Потом нажимаем на кнопку в центре нового окна «Настройки». И в большом контекстном меню выбираем пункт «Электронная таблица».libreoffice basic автодополнение кода. Libre rassulka6. libreoffice basic автодополнение кода фото. libreoffice basic автодополнение кода-Libre rassulka6. картинка libreoffice basic автодополнение кода. картинка Libre rassulka6. При использовании пакета LibreOffice, обычные пользователи зачастую даже не догадываются про все возможности, которые предоставляет этот пакет. Набрать текст, оформить его в соответствии с некоторыми требованиями, при необходимости добавить фото и распечатать получившийся документ – вот и все, чем ограничивается работа с текстовым редактором LibreOffice Writer. А его возможности, и в самом деле, гораздо шире. И ничуть не уступают тем, которые есть у самых именитых платных офисных пакетов.

Рис. 6. Выбираем тип подключаемого файла

После всего этого указываем путь к тому файлу, где хранится информация о выпускниках. На этом этапе можно воспользоваться кнопкой «Тестовое соединения» и убедиться, что все сделано правильно. Назначение полей на этом этапе можно не проводить (просто нажать кнопку «Далее»), а вот имя адресной книги задаем «Выпускники». И обязательно указываем в «Расположение» путь, где автоматически будет создан файл LibreOffice Base.

libreoffice basic автодополнение кода. Libre rassulka7. libreoffice basic автодополнение кода фото. libreoffice basic автодополнение кода-Libre rassulka7. картинка libreoffice basic автодополнение кода. картинка Libre rassulka7. При использовании пакета LibreOffice, обычные пользователи зачастую даже не догадываются про все возможности, которые предоставляет этот пакет. Набрать текст, оформить его в соответствии с некоторыми требованиями, при необходимости добавить фото и распечатать получившийся документ – вот и все, чем ограничивается работа с текстовым редактором LibreOffice Writer. А его возможности, и в самом деле, гораздо шире. И ничуть не уступают тем, которые есть у самых именитых платных офисных пакетов.

Рис. 7. Завершаем подключение

Проверить, что все прошло правильно, можно, нажав на кнопку F4, или отыскав в меню «Стандартная» кнопку «Источники данных». В появившемся окне можно проконтролировать правильность подключения.

libreoffice basic автодополнение кода. Libre rassulka8. libreoffice basic автодополнение кода фото. libreoffice basic автодополнение кода-Libre rassulka8. картинка libreoffice basic автодополнение кода. картинка Libre rassulka8. При использовании пакета LibreOffice, обычные пользователи зачастую даже не догадываются про все возможности, которые предоставляет этот пакет. Набрать текст, оформить его в соответствии с некоторыми требованиями, при необходимости добавить фото и распечатать получившийся документ – вот и все, чем ограничивается работа с текстовым редактором LibreOffice Writer. А его возможности, и в самом деле, гораздо шире. И ничуть не уступают тем, которые есть у самых именитых платных офисных пакетов.

Рис. 8. Делаем проверку

Заполняем поля, используя связь между файлами

Внедрить необходимые поля на свои места нужно, используя команду главного меню: Вставка –> Поля –> Дополнительно (или нажать комбинацию клавиш Ctrl+F12).

libreoffice basic автодополнение кода. Libre rassulka9. libreoffice basic автодополнение кода фото. libreoffice basic автодополнение кода-Libre rassulka9. картинка libreoffice basic автодополнение кода. картинка Libre rassulka9. При использовании пакета LibreOffice, обычные пользователи зачастую даже не догадываются про все возможности, которые предоставляет этот пакет. Набрать текст, оформить его в соответствии с некоторыми требованиями, при необходимости добавить фото и распечатать получившийся документ – вот и все, чем ограничивается работа с текстовым редактором LibreOffice Writer. А его возможности, и в самом деле, гораздо шире. И ничуть не уступают тем, которые есть у самых именитых платных офисных пакетов.

Рис. 9. Вызываем меню для установки полей

Поле будет вставлено именно туда, где в данный момент находится курсор. Поэтому устанавливаем его после слова «Уважаемый,» (не забываем отступить один пробел). И на закладке «База данных», выбрав необходимое подключение и нужную таблицу, нажимаем кнопку «Вставить».

libreoffice basic автодополнение кода. Libre rassulka10. libreoffice basic автодополнение кода фото. libreoffice basic автодополнение кода-Libre rassulka10. картинка libreoffice basic автодополнение кода. картинка Libre rassulka10. При использовании пакета LibreOffice, обычные пользователи зачастую даже не догадываются про все возможности, которые предоставляет этот пакет. Набрать текст, оформить его в соответствии с некоторыми требованиями, при необходимости добавить фото и распечатать получившийся документ – вот и все, чем ограничивается работа с текстовым редактором LibreOffice Writer. А его возможности, и в самом деле, гораздо шире. И ничуть не уступают тем, которые есть у самых именитых платных офисных пакетов.

Рис. 10. Устанавливаем поля

Если все сделано правильно и аккуратно, должно получиться вот что:

libreoffice basic автодополнение кода. Libre rassulka11. libreoffice basic автодополнение кода фото. libreoffice basic автодополнение кода-Libre rassulka11. картинка libreoffice basic автодополнение кода. картинка Libre rassulka11. При использовании пакета LibreOffice, обычные пользователи зачастую даже не догадываются про все возможности, которые предоставляет этот пакет. Набрать текст, оформить его в соответствии с некоторыми требованиями, при необходимости добавить фото и распечатать получившийся документ – вот и все, чем ограничивается работа с текстовым редактором LibreOffice Writer. А его возможности, и в самом деле, гораздо шире. И ничуть не уступают тем, которые есть у самых именитых платных офисных пакетов.

Рис. 10. Готовый документ с подключенными полями

Создаем окончательный документ для рассылки

Финальный документ получаем, выполнив команду: Сервис –> Рассылка писем. В появившемся окне последовательно справляемся со всеми пунктами, несколько раз нажимая на кнопку «Далее». В итоге получается текстовый файл, в котором столько страниц, сколько было заполнено строчек в базе данных электронных таблиц. И на каждой странице вместо и т.д. будет проставлена информация из таблицы.

Источник

Рутина на потоке. Осваиваем простейшие приемы автоматизации работы с LibreOffice

Содержание статьи

warning

Пе­ред запус­ком пер­вого мак­роса LibreOffice может пот­ребовать уста­новить JRE (Java Runtime Environment). Ска­чать инстал­лятор мож­но здесь.

Что такое LibreOffice

Еще LibreOffice мож­но уста­новить на сер­вер и запус­кать в бра­узе­ре. Для это­го сер­вер дол­жен управлять­ся Linux и на нем дол­жна быть уста­нов­лена биб­лиоте­ка GTK3 (она нуж­на для тран­сля­ции гра­фики в HTML5).

Прог­рам­мный пакет вклю­чает в себя сле­дующие ком­понен­ты:

Спе­циаль­но для тебя мы сде­лали под­борку исходни­ков мак­росов для LibreOffice. Ищи их в репози­тори­ях GitHub к это­му номеру.

.bash и LibreOffice

Соз­давать и редак­тировать докумен­ты LibreOffice мож­но нап­рямую из shell, исполь­зуя LibreOffice API. В качес­тве при­мера скон­верти­руем ODT-файл в docx:

Языки, на которых можно написать макрос

Для написа­ния мак­росов на этом язы­ке не нуж­но уста­нав­ливать никаких допол­нений. Пакет LibreOffice Basic пос­тавля­ется с обширной кол­лекци­ей при­меров кода для раз­ных ситу­аций, и этот спо­соб авто­мати­зации отлично докумен­тирован на сай­те про­екта. Боль­шая часть нашей статьи пос­вящена это­му спо­собу.

libreoffice basic автодополнение кода. pictures 1. libreoffice basic автодополнение кода фото. libreoffice basic автодополнение кода-pictures 1. картинка libreoffice basic автодополнение кода. картинка pictures 1. При использовании пакета LibreOffice, обычные пользователи зачастую даже не догадываются про все возможности, которые предоставляет этот пакет. Набрать текст, оформить его в соответствии с некоторыми требованиями, при необходимости добавить фото и распечатать получившийся документ – вот и все, чем ограничивается работа с текстовым редактором LibreOffice Writer. А его возможности, и в самом деле, гораздо шире. И ничуть не уступают тем, которые есть у самых именитых платных офисных пакетов.От­кры­ваем менед­жер мак­росов

Хакер #188. Ботнеты, изменившие мир

Этот спо­соб дос­тался в нас­ледс­тво от OpenOffice (про­ект куриро­вала ком­пания Oracle). BeanShell — это скрип­товый язык, соз­данный для тес­тирова­ния и отладки Java-прог­рамм. Для написа­ния мак­росов на этом язы­ке необ­ходимо изме­нить уста­новить соот­ветс­тву­ющее рас­ширение goo.gl/OzHo1W.

libreoffice basic автодополнение кода. pictures 5. libreoffice basic автодополнение кода фото. libreoffice basic автодополнение кода-pictures 5. картинка libreoffice basic автодополнение кода. картинка pictures 5. При использовании пакета LibreOffice, обычные пользователи зачастую даже не догадываются про все возможности, которые предоставляет этот пакет. Набрать текст, оформить его в соответствии с некоторыми требованиями, при необходимости добавить фото и распечатать получившийся документ – вот и все, чем ограничивается работа с текстовым редактором LibreOffice Writer. А его возможности, и в самом деле, гораздо шире. И ничуть не уступают тем, которые есть у самых именитых платных офисных пакетов.Кноп­ка Edit неак­тивна. С Python все не так прос­то

Для того что­бы авто­мати­зиро­вать работу с LibreOffice на Python, нуж­но уста­новить соот­ветс­тву­ющее допол­нение:

Ес­ли ты исполь­зуешь LibreOffice под Windows, тог­да надо уста­новить это допол­нение через Tools → Options → LibreOffice → General.

Пос­ле уста­нов­ки мож­но редак­тировать Python-мак­росы из встро­енно­го редак­тора.

Java Script

C JS ситу­ация ана­логич­на ситу­ации с Python. Для выпол­нения мак­росов тре­бует­ся уста­новить libreoffice-script=provider-js.
Со­ответс­твен­но, для Windows спо­соб уста­нов­ки так­же ана­логи­чен пре­дыду­щему пун­кту.

Как и в MS Office, в LibreOffice есть воз­можность записы­вать мак­росы. Это мож­но сде­лать через пункт меню Record Macro.

Мож­но нас­тро­ить нес­коль­ко спо­собов вызова мак­роса:

Примеры макросов:

В прин­ципе, на LibreOffice Basic мож­но ими­тиро­вать любые дей­ствия поль­зовате­ля. Для наг­ляднос­ти при­ведем при­меры авто­мати­заций для раз­личных ком­понен­тов LibreOffice.

Hello world

При­мер прос­тей­шего мак­роса для вывода сооб­щения с тек­стом:

SpreadSheet

Этот код кра­сит пер­вую ячей­ку во вто­ром лис­те в кни­ге в чер­ный цвет:

UNO — ком­понен­тная модель для вза­имо­дей­ствия объ­ектов в OpenOffice и LibreOffice. Для прог­рам­мно­го управле­ния этой моделью сущес­тву­ют UNO API. С помощью его про­изво­дит­ся обра­щение к LibreOffice из сто­рон­них скрип­тов (Python, JS и BeanShell).

Presentation

Мак­рос для соз­дания нового слай­да в пре­зен­тации:

Drawing

Этот мак­рос уда­ляет все линии с рисун­ка. Ког­да это может при­годить­ся? Допус­тим: нарисо­вали 30-стра­нич­ную схе­му, где лини­ями соеди­нены все объ­екты. Потом при­шел твой шеф и ска­зал: «Нафиг лини­ями? И без них все понят­но!»

Ана­логич­ным обра­зом мож­но уда­лить все стре­лоч­ки или дру­гие фигуры.

Автоматизация OpenOffice

Ес­ли ты олдфаг, при­вык к OpenOffice и не хочешь менять его не на что‑то дру­гое, это не лиша­ет тебя воз­можнос­ти авто­мати­зиро­вать свою работу. Мно­гие при­меры из этой статьи будут работать в этом пакете. А докумен­тации по авто­мати­зации OpenOffice гораз­до боль­ше, чем по LibreOffice. Вот ссыл­ка на отличный FAQ, в котором есть отве­ты на все воп­росы по авто­мати­зации OpenOffice:

Database

С помощью мак­росов мож­но выпол­нять зап­росы к базам дан­ных (пред­варитель­но необ­ходимо уста­новить соеди­нение с database-сер­вером):

Pandoс

Ути­лита для обра­бот­ки тек­сто­вых фай­лов. Она может кон­верти­ровать Markdown, LaTeX и HTML в целый калей­дос­коп раз­личных фор­матов. Вот некото­рые из них:

Заключение

LibreOffice Basic син­такси­чес­ки иден­тичен VBA и всем осталь­ным раз­новид­ностям бей­сика, с которы­ми мно­гим из нас приш­лось стол­кнуть­ся в шко­ле и инсти­туте. Но не надо ста­вить LOB на один уро­вень с его бра­том от Microsoft. Во‑пер­вых, редак­тор мак­росов в LB гораз­до дру­жес­твен­нее и тер­пимее к про­махам поль­зовате­ля. В час­тнос­ти, в слу­чае ошиб­ки не надо гуг­лить ее код по форумам в сти­ле «информа­тика для школь­ника», чаще все­го понять, что не так, мож­но, не выходя из окна с кодом. Во‑вто­рых, выпол­нение мак­роса никог­да не парали­зует работу компь­юте­ра (как это иног­да может сде­лать бес­конеч­ный цикл в VBA). А в‑треть­их, бла­года­ря воз­можнос­тям UNO API авто­мати­зиро­вать мож­но поч­ти все что угод­но.

Источник

Введение

В настоящее время у человечества стоит задача автоматизировать и роботизировать наиболее опасные, трудоемкие, не интересные виды человеческой деятельности. Наиболее актуальна роботизация при выполнении боевых задач, видов деятельности, сопряженных с риском для жизни человека.

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

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

1 OpenOffice Basic и LibreOffice Basic

OpenOffice Basic и Libre O ffice Basic ранее назывались StarOffice Basic, StarBasic, OpenOffice.org Basic, OOo Basic. LibreOffice Basic в настоящее время развивается, опережая OpenOffice Basic, поэтому в дальнейшем будем преимущественно говорить о Libre O ffice Basic.

OOo Basic схож с другими диалектами Basic, например, с Visual Basic for Application может иметь одинаковый программный код в широкой области применения.

OOo Basic позволяет программировать в пакетах офисных программ OpenOffice и LibreOffice, а также автоматизировать управляющие этими пакетами действия. ООо Basic не позволяет создавать самостоятельно выполняемые программы с расширением exe.

— легок для изучения;

— поддерживает объекты COM ( ActiveX ) и расширенные возможности GUI в OpenOffice ;

— есть сообщество пользователей в Интернет;

— это решение для нескольких платформ (Linux, Windows и т.д.).

Кроссплатформенность (совместимость с 32/64-битными системами, поддержка таких самых популярных операционных систем, как Microsoft Windows, GNU/Linux и Mac OS X), свободное распространение для бесплатного использования в частных и коммерческих целях, открытый исходный код придают Libre O ffice Basic особую ценность.

В справке по OpenOffice или LibreOffice, вызываемой при нажатии на F1, в разделе «Макросы и программирование» можно получить львиную долю информации о программировании на OOo Basic.

2 Мой первый макрос: “ Hello World ” [1]

3 Левый Alt нажать одновременно с F11 для открытия ООо Basic IDE

4 Оператор REM или апостроф ‘ перед комментарием

‘П рограмма начинается оператором Sub с именем Main

REM К омментарий для людей программа не выполняет

Print » REM или ‘ перед комментарием » ‘ Выведем

‘ Следующий оператор завершает программу

End Sub REM программа завершилась

REM — это сокращение слова remark (комментарий).

5 Циклы Do. Loop

Цикл Do While УсловиеLoop п роверяет перед каждым выполнением цикла истинно ли условие и выполняться пока (While) истинно условие:

Цикл Do Until УсловиеLoop выполняется до (Until) истинности условия. Цикл выполняется, если условие ложно:

Цикл Do … Loop While Условие выполняется по крайней мере один раз и продолжает выполняться пока (While) истинно условие:

Loop While Условие

Цикл Do … Loop Until Условие выполняется один или большее число раз до (Until) наступления момента истинности условия

6 Группировка текста программ [1]

Листинг 3.2 : “Hello world” с использованием процедуры и функции.

Function HelloWorldString () As String

HelloWorldString = «Hello World»

Каждый модуль (m odule) содержит набор процедур (функций). Библиотека (Library) содержит набор модулей. Документ (document) может содержать библиотеку или несколько библиотек. Библиотека может существовать также на уровне Приложения (application level), такого как OOo Writer.

7 Передача параметров процедурам и функциям

П роцедуры и ф ункции могут получать несколько параметров. После имени процедуры или функции передаваемые параметры заключаются в круглые скобки, н апример,

‘ Параметр A теперь имеет значение 20

Sub ChangeValue ( TheValue As Integer )

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

В предыдущем примере, если мы заменяем функцию ChangeValue на функцию

Sub ChangeValue ( ByVal TheValue As Integer )

тогда переменная A остается незатронутой этим изменением. После вызова функции ChangeValue, переменная A сохраняет значение 10.

Примечание Метод для передачи параметров процедурам и функциям в OOo Basic фактически идентичен VBA. По умолчанию, параметры передаются по ссылке. Чтобы передавать параметры по значению, используйте ключевое слово ByVal. В VBA, Вы можете также использовать ключевое слово ByRef, чтобы вынудить параметр быть переданным по ссылке. OOo Basic не поддерживает это ключевое слово, потому что оно уже используется по умолчанию в процедурах OOo Basic.

8 Необязательные (Optional) параметры

Функции и процедуры можно вызвать, только если все необходимые параметры передаются во время вызова. OOo Basic позволяет Вам определять параметры как необязательные, то есть, если соответствующие значения не включены в запрос, OOo Basic передает пустой параметр. В примере [ 9 ; стр. 24 ]

параметр A обязателен, тогда как параметр B является необязательным. Функция IsMissing проверяет, передан ли параметр или нет.

Dim B_Local As Integer

‘ Проверка, присутствует ли параметр B фактически

If Not IsMissing ( B ) Then

B_Local = B ‘ Параметр B присутствует

Пример сначала проверяет, передали ли параметр B и, в случае необходимости, передает этот параметр внутренней переменной B_Local. Если соответствующий параметр отсутствует, то значение по умолчанию (в этом случае, значение 0) передается B_Local, а не переданному параметру.

Примечание Ключевое слово ParamArray присутствующее в VBA не поддерживается в OOo Basic.

9 OpenOffice.org и LibreOffice API

OpenOffice и LibreOffice API (application programming interface) не является языком программирования, он только интерфейс программирования приложений в виде готового набора методов, предлагаемых сервисом для создания программ. OpenOffice и LibreOffice API содержат много сервисов (Services) и объектов (Objects).

Способы использования StarBasic API в программировании на каком-то языке могут без особых усилий применяться для интеграции StarBasic API с другими поддерживаемыми языками программирования ( Basic, C, C++, Java, Python).

9.1 Справочная информация по API OpenOffice.org и LibreOffice

Документация о сервисах, их свойствах, методах и интерфейсах сосредоточена в справочнике по OpenOffice.org API на сайте www.openoffice.org по ссылке:

Онлайн документация по Libreoffice API расположена по адресу:

9.2 Создание и обращение к объектам

Объект ThisComponent является глобальной переменной, предоставляющей доступ к активному документу. Следующая программа объявляет активный документ OpenOffice или LibreOffice как объект Doc:

Dim Doc As Object ‘Doc объявляется как объект

Doc = ThisComponent ‘ Активный документ получает имя Doc

9.3 Сервисы LibreOffice Basic

Все сервисы OOo Basic начинаются с com.sun.star и составляют большой перечень, из которого наиболее важные:

— com.sun.star.drawing содержит все сервисы, используемые для рисования линий, прямоугольников, кругов и т.д. (collects all services used for drawing line, rectangles, circles etc).

— com.sun.star.frame содержит сервисы Desktop(). Вы можете использовать этот сервис для открытия существующих документов или создания новых (contains the Desktop() service. You use this service to open existing documents or create new ones).

— com.sun.star.presentation предоставляет все сервисы для создания и работы с презентациями (provides all services to create and work with presentations).

— com.sun.star.sheet содержит сервисы для электронных таблиц. Сервис SpreadheetDocument() используется для работы с листами электронных таблиц (contains services for spreadsheets. Its SpreadheetDocument() service is used to work with spreadsheets).

— com.sun.star.table предоставляет все сервисы для таблиц в текстовых документах и электронных таблицах (provides all services for tables in text documents and spreadsheets).

— com.sun.star.text группы сервисов, связанных с текстовыми документами. Сервис TextDocument() предоставляет все интерфейсы, необходимые для работы с текстовыми документами (groups the services dealing with text documents. The TextDocument() service provides all interfaces needed to work with text documents).

9.4 Список всех сервисов, поддерживаемых LibreOffice Basic

Все поддерживаемые LibreOffice сервисы (1022 сервиса) отсортированы по алфавиту:

Источник

Программирование LibreOffice Base. Часть 1

В opensource офисных пакетах OpenOffice, LibreOffice есть редко используемая и очень скупо документированная возможность — программирование, которая позволяет быстро разрабатывать приложения, аналогичные, например, приложениям Microsoft Access. Сегодня я сделаю небольшой обзор возможностей программирования OpenOffice, LibreOffice.

Вопрос: а зачем?

Я не буду сейчас влазить в исторические причины, т.к. у работников, причастных к автоматизации — это и руководители предприятий, и дистрибьюторы ERP-систем, и IT-службы внутри предприятия, и консалтинг — у всех свои причины (зачастую подкрепленные денежной выгодой) отстаивать именно свою точку зрения. Но я думаю, все согласятся с тем что в повседневной работе подразделений предприятий Excel и его бесплатный аналог Calc (из пакета OpenOffice, LibreOffice) используется очень широко. И уж если такое явление существует, то можно утверждать что это уже не случайность, а так сказать производственная необходимость, и уж точно не вина работников — а скорее недоработка автоматизаторов.

В пакетах OpenOffice, LibreOffice есть компонент для работы с базами данных — Base. Я пытался освоить работу с ним еще до OpenOffice, LibreOffice — во времена StarBase. Но все мои попытки упирались в полное отсутствие документации по разработке (программированию). На сегодня, документации по-прежнему мало, и, наверное, наиболее полезным ресурсом является книга большого энтузиаста программирования OpenOffice, LibreOffice — Andrew Pitonyak. Также была издана книга на русском языке, включающая главу 7. Язык OOo Basic — УДК 681.3.06 ББК 32.973.26-018.2 К59 Козодаев, Р. Ю. К59 OpenOffice.org 3. Полное руководство пользователя / Р. Ю. Козодаев, А. В. Маджугин / Под ред. Е. В. Ушаковой. — СПб.: БХВ-Петербург, 2010. — 704 с.: ил. + Дистрибутив (на CD-ROM) — (Библиотека ГНУ/Линуксцентра) ISBN 978-5-9775-0385-3

Поэтому в качестве распространения информации о возможностях программирования OpenOffice, LibreOffice с упором на компонент Base создано это сообщение.

Пакет LibreOffice сейчас актуален в версии 6.2 которую можно получить на сайте разработчика.

Также пакет предустановлен на многих дистрибутивах Linux (иногда не предустановлен пакет Base, так как он сравнительно редко используется).

На этапе создания новой базы данных Base можно выбрать вариант работы со встроенной базой данных или присоединиться к серверу базы данных. То есть многопользовательская работа поддерживается. Для экспериментов можно выбрать любой из вариантов.

Редактор макросов открывается последовательным выбором пунктов меню Tools->Macros->Organize Macros->LibreOffice Basic.

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

Создадим самый простой макрос:

Далее создадим форму Forms->Create Form In Design View. И добавим в конструкторе формы элемент кнопка. После создания кнопки распахнем палитру свойств кнопки, нажав правую кнопку мыши и далее последовательно выбрав Control->Execute Action->Macro->Имя библиотеки->Hello.

Сохранив форму вызываем ее на выполнение и наблюдаем работу макроса. Или не наблюдаем. Все дело в защите которая в связи с участившимися вредоносными макросами отключает их работу по умолчанию.

Если тем вызовет хоть какой-то интерес готов продолжить более конкретными темами.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *