Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

8 Март 2021, 08:45 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Здесь можно поблагодарить участников форума Улыбка
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1   Вниз
  Печать  
Автор Тема: Ошибка в макросе  (Прочитано 7923 раз)
0 Пользователей и 1 Гость смотрят эту тему.
as1234
Век живи , век учись ))
Участник
**
Offline Offline

Пол: Мужской
Сообщений: 35


« Стартовое сообщение: 17 Апрель 2012, 12:55 »

Взял пример из книжки - Загрузить документ в существующий фрейм . Но чего-то не фурычит , выдает ошибку на строчке
oDoc = oFrame.LoadComponentFromUrl(s, "", 2, mArgs())

type:com.sun.star.lang.illegalargumentexception
message:url seems to be an unsupported one

Обьясните в чем дело  Непонимающий

[вложение удалено Администратором]
Записан
Hasim
Форумчанин
***
Offline Offline

Сообщений: 754

Woe from wit


« Ответ #1: 17 Апрель 2012, 13:20 »

Вы пытаетесь загрузить документ, которого нет на диске по указанному URL.
Записан
Hasim
Форумчанин
***
Offline Offline

Сообщений: 754

Woe from wit


« Ответ #2: 17 Апрель 2012, 13:28 »

И не нужно загружать в тот же самый фрейм. Это приведет к трудностям впоследствии для вашей задачи. Закроется исходный файл.
Нужно загрузить новый документ в новый фрейм, или даже можно открыть скрытым (hidden mode).
Записан
Hasim
Форумчанин
***
Offline Offline

Сообщений: 754

Woe from wit


« Ответ #3: 17 Апрель 2012, 13:30 »

Неудачный выбор примера для подражания.
Записан
as1234
Век живи , век учись ))
Участник
**
Offline Offline

Пол: Мужской
Сообщений: 35


« Ответ #4: 17 Апрель 2012, 13:38 »

"И не нужно загружать в тот же самый фрейм. Это приведет к трудностям впоследствии для вашей задачи. Закроется исходный файл" Эту часть предложения я понял , так как макрос испробывал ,а остальное чучуть недоходчево !))

Изучаю ooo basic да и программирование вообщем недолго , еще неделе 2 назад даже не знал как и где открыть окошко чтоб писать эти макросы )) какую литературу нашел по такой потихоньку и изучаю - если подскажете чтото более лучшее с лучшими примерами буду признателен ! =)
Записан
Hasim
Форумчанин
***
Offline Offline

Сообщений: 754

Woe from wit


« Ответ #5: 17 Апрель 2012, 13:48 »

Этот макрос открывает документ one.odt в отдельном окне
Код:
Sub Main
url = convertToUrl("C:\tmp\one.odt")
oDoc = StarDesktop.loadComponentFromURL(url, "_default", 0,  array() )
End Sub

Я изучал по примерам на форумах.
Записан
as1234
Век живи , век учись ))
Участник
**
Offline Offline

Пол: Мужской
Сообщений: 35


« Ответ #6: 17 Апрель 2012, 21:59 »

Спасибо ! Действительно ваш пример гораздо лучше , еще и компактней !
Записан
as1234
Век живи , век учись ))
Участник
**
Offline Offline

Пол: Мужской
Сообщений: 35


« Ответ #7: 17 Апрель 2012, 22:34 »

Решив один вопрос , сразу же образуеться другой )))

При открытии документа в отдельном окне , в нем перестают работать макросы , пишет дело в безопасности , поставил уровень безопасность макросов на "низкий" , но толку никакого ...
Записан
Hasim
Форумчанин
***
Offline Offline

Сообщений: 754

Woe from wit


« Ответ #8: 17 Апрель 2012, 23:26 »

Чтобы заработали макросы в one.odt
Код:
Sub Main

Dim PropVal As New com.sun.star.beans.PropertyValue
PropVal(0).Name = "MacroExecutionMode"
PropVal(0).Value = 4

url = convertToUrl("C:\tmp\one.odt")
oDoc = StarDesktop.loadComponentFromURL(url, "_default", 0,  Array(PropVal()) )
End Sub

Но вам это не нужно, вам же нужно, чтобы выполнялись только макросы из исходного файла ("Действия над полями свойств пользователя.odt"), пишущие "Свойства пользователя" в целевой файл ("one.odt").
« Последнее редактирование: 17 Апрель 2012, 23:45 от Hasim » Записан
as1234
Век живи , век учись ))
Участник
**
Offline Offline

Пол: Мужской
Сообщений: 35


« Ответ #9: 18 Апрель 2012, 20:04 »

Спасибо ! Все заработало после вставки "PropVal" в Array , а до этого был в недоумение и постеснялся снова спросить в чем дело ))

"Но вам это не нужно, вам же нужно, чтобы выполнялись только макросы из исходного файла ("Действия над полями свойств пользователя.odt"), пишущие "Свойства пользователя" в целевой файл ("one.odt")"  это пока не архиважно ))
« Последнее редактирование: 18 Апрель 2012, 21:05 от as1234 » Записан
Страниц: 1   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!