Требуется консультация по работе с Extension Compiler

Автор karpo518, 21 июля 2017, 09:57

0 Пользователи и 1 гость просматривают эту тему.

karpo518

Добрый день. Необходимо запаковать в расширение макрос на Python.

1. Открыл шаблон документа Extension Compiler.
2. Офис предложил сохранить его в папке с макросом. Вынес файл макроса в отдельную папку и сохранил в ней документ.
3. Открыл макросы документа и в заготовку(шаблон) вписал свои инструкции для  компиляции.
4. Запустил макрос и получил ошибку выполнения http://joxi.ru/J2bNx90IXWkN42

Сначала подумал, что сделал ошибку в коде для компиляции. Но исходный шаблон кода(заготовка) отдает точно такую же ошибку. Подскажите, в чём проблема?
Linux Mint 18 (64 bit),  LibreOffice 5.1.6.2

Yakov

#1
Какая версия LO/AOO и версия  Extension Compiler?

Я пробовал использовать подобную утиллиту (BasicAddonBuilder) для макроса на Basic,
и результат работы сильно зависит от местоположения необходимого макроса. Для стандартных библиотек не работает
упаковка в расширение.

economist

А если просто взять и... Распространять саму библиотеку?  

Если цель - защита от кидалова, то припоминаю: как-то нужно было сделать один скриптик за плату, без Python тоже не обошлось, поскольку его модуль re просто рвет аналоги в клочья. Я зашифровал SB-библиотеку с вызовом py-скрипта, добавил в неё чтение ключа (на stackoverflow пробегает с десяток), скомпилировал в байт-код с шифрованием - и, о чудо, за 5 лет никто не поломал ни саму SB-библу, ни *.pyc. Шабашка та стоила 100 т.руб., решение почти тиражное, так что желающих поломать было больше, чем желающих купить.
Вывод: парольная защита библиотек в OpenOffice|LibreOffice - хорошая. Да и пятнично вполне...
Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...

rami

Цитата: karpo518 от 21 июля 2017, 07:57Подскажите, в чём проблема?
А что окошку сообщения вы уже не верите? Оно говорит, что нет в форме элемента с таким именем, значит нет, окошко врать не будет. У вас что, много элементов с именем "Results_" & ApplicationTarget ? И каким образом устанавливается переменная ApplicationTarget ?

karpo518

Спасибо за ответы.

Цитата: Yakov от 21 июля 2017, 08:16Какая версия LO/AOO и версия  Extension Compiler?
Linux Mint 18 (64 bit),  LibreOffice 5.1.6.2 Extention Compilier 2.1.2
BasicAddonBuilder поддерживает только макросы на basic, поэтому не подходит

Цитата: economist от 21 июля 2017, 08:19А если просто взять и... Распространять саму библиотеку?
Запакованное расширение нужно исключительно для удобства пользователей. Расширение добавляет кнопку-иконку.

Цитата: rami от 21 июля 2017, 10:51А что окошку сообщения вы уже не верите?

Это ошибка одного из файлов Extension Compiler. У меня нет возможности дебажить код утилиты на несколько тысяч строк, поэтому и спрашиваю в первую очередь тех, кто сталкивался с проблемой, о способах её решения.


Linux Mint 18 (64 bit),  LibreOffice 5.1.6.2

karpo518

#5
Макрос не мог отобразить ошибку "Instruction: beginDescriptionThis cannot be used here". Но она никак не помогла. Прикладываю инструкцию для компиляции. Подскажите, пожалуйста, в чем ошибка?

REM  *****  BASIC  *****

Option Explicit

Sub testDescription

beginDescription("tata.toto.titi.tutu", "1.2.0")
   setExtensionDescription("en")
   setPublisherName("en", "Ivan Ivanov", "http://www.oooyes.com")
   setDisplayName("en", "TestName")
   beginUpdateInformation("direct", "direct")
  setUpdateSource("http://test.tw1.ru/PlainToHTML2/", "http://test.tw1.ru/PlainToHTML2/") ' first choice
   endUpdateInformation
 endDescription  
 beginAddonUI
   beginAddonMenu
     beginCommand
       beginTitles("Writer")
         setTitle("This is an apple", "en")
       endTitles
       setURL("Python", "PlainToText2.py", "PlainToHtml")
       setImage("icon.png")
       setTarget("_self")
     endCommand
   endAddonMenu
 endAddonUI

End Sub

Linux Mint 18 (64 bit),  LibreOffice 5.1.6.2

economist

Кстати, раз уж про "удобства пользователей" - для этого в домене на 250 машин распространяю копированием в logon-скрипте папку C:\PortableApps, в которой OpenOffice|LibreOffice и JAVA  -  portable-версиb , с оптимальными настройками, кучей расширений и кнопок в панели, путями к Автотексту, СУБД итд. Было опасение что кому-то не понравится "ходить строем" - оказалось напрасно. Все наоборот - благодарны, что везде и у всех всё одинаково. И это даже не 250 человек, а около 500 (сменная работа).
Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...

karpo518

Проблема решена. Вместо запуска макроса напрямую из IDE, нужно было нажимать на кнопку в форме документа для компиляции. Невнимательно прочитал инструкцию.
Linux Mint 18 (64 bit),  LibreOffice 5.1.6.2