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

  • Tutorial
В 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.

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

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

Sub Hello
  MsgBox "Hello"
End Sub

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

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

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

Комментарии 15

    +14

    Начал читать статью, а она кончилась

      –1
      В статье есть ссылки на два (один мой и другой очень подробный — 600 страниц текста — Andrew Pitonyak) источника информации. Для того чтобы просто достучаться до скриптового движка без подробностей материала в статье как мне кажется достаточно. Дальше если бы возник какой-то интерес к этой теме можно было бы и продолжить. Тем более что уже готовый материал есть в моем заброшенном блоге. Нужно только немного обновить подробности в связи с тем что там фигурирует версия OpenOffice около 3.0, а сейчас актуальная версия 6.2
        +1

        То есть статья задумана просто для увеличения ТИЦ какого-то блога?
        Тогда надо добавить соответствующий тэг "Я пиарюсь".

          0
          Нет. Это не так. К счастью я живу немного в другом измерении и тиц — даже не хочу гуглить что это такое — меня не занимает. Убрал ссылку на блог чтобы статью не удалили т.к. я пиарюсь не более чем любой другой на Хабре который пишет сообщение.
      +1
      Я пытался освоить работу с ним еще до OpenOffice, LibreOffice — во времена StarBase. Но все мои попытки упирались в полное отсутствие документации по разработке (программированию).

      С этим пришлось столкнуться при добавлении поддержки электронной подписи ГОСТ Р 34.10-2001/2012 в документах формата PDF в офисном пакете LibreOffice.

        +4
        А где, собственно, само программирование? Или это такая тонкая реклама блога?
        Интерес к этой теме есть, но хочется именно конкретных примеров
          0
          Этот блог я уже не поддерживаю и даже не захожу на него сам уже 5 лет. Поэтому ссылка на блог и на единственный на сегодня мощный источник информации по программированию OpenOffice — это персональный сайт Andrew Pitonyak с его книгой на 600 страниц — даны для тех кто теоретически мог бы читать это сообщение и захотел подробно разобраться с темой.
          Основной посыл этой заметки — что программировать в среде Open/Libre Office — можно и есть источники информации (прежде всего Andrew Pitonyak).
          Если интерес к теме есть, то с радостью продолжу эту тему конкретными примерами.
            +1

            Но зачем начинать статью если лениво ее писать?

          0
          а здесь можно задавать вопросы по libre office base? я как раз создаю базы на нем на работе…
          вот если бы была у него контекстная подсказка как в VBA!!!
            0
            Если есть вопросы можно в личные сообщения. Если смогу отвечу.
              0
              Лучше через Тостер. Так люди столкнувшиеся с такими же проблемами смогут спустя время найти ответы.
                0
                Да без проблем
                  0
                  извини я впервые на хабре не понимаю че за тостер?
            +2
            Пишите дальше

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

            Самое читаемое