Формируется документ из шаблона ODT . В версии 3.3 нижепри...

Автор ForumOOo (бот), 9 октября 2014, 15:39

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

ForumOOo (бот)

Компонент: Writer
Версия продукта: 4.1.x
Сборка: Apache OpenOffice
ОС: windows XP

Формируется документ из шаблона ODT . В версии 3.3 нижеприведенный код
работает без проблем, а в версии 4.1 документ открывается , но
макроподстановки не выполняются. В чем проблема ?

Если это файл ОпенОфис
if UCase(right(sFileFrom,3)) = "ODT" or UCase(right(sFileFrom,3)) =
"ODS" then
  'Переделать путь к формируемому файлу под стандарт ОО
  sFileTo = "file:///"+replace(sFileTo,"\","/")
  sFileSrc = "file:///"+replace(sFileSrc,"\","/")

  'Открытие файла
  Dim NoArg()
  Dim oServiceManager
  Dim oDesktop
  Dim oDocument
  set oServiceManager = CreateObject("com.sun.star.ServiceManager")
  set oDesktop =
oServiceManager.createInstance("com.sun.star.frame.Desktop")
  set oDocument = oDesktop.loadComponentFromURL("file:///"+sFileFrom,
"_blank", 0, NoArg)

  'Запуск макроса (macro://./Standard.ReplaceValue.ReplaceValue)
  Dim oDispatcher
  set oDispatcher =
oServiceManager.createInstance("com.sun.star.frame.DispatchHelper")
  Call oDispatcher.executeDispatch(oDesktop,
sMacroName+"("""+sFileSrc+""","""+sFileTo+""")", "", 0, NoArg)
end if


--
Подпись: Андрей

Yakov

Цитата: ForumOOo (бот) от  9 октября 2014, 14:39Запуск макроса (macro://./Standard.ReplaceValue.ReplaceValue)
Проверьте наличие этой библиотеки в вашей версии 4.1

arz_ven

Цитата: Yakov от 10 октября 2014, 11:09Проверьте наличие этой библиотеки в вашей версии 4.1
Это макрос в документе шаблоне. Standard.dll нет ни в одном office

Hasim


Yakov

#4
Помимо шаблона, макрос может быть в библиотеке "Мои макросы"
Поэтому, проверьте нет ли в вашей установке версии 3.3 макросов в библиотеке  "Мои макросы" / Standard

arz_ven

Спасибо Всем за участие.
  Имеем файл шаблона sss.odt. в результате работы программы формируется файл с переменными sss.txt. По выше указанному коду файл  sss.odt заполняется переменными из sss.txt.  файлы взял рабочие, только несколько урезал для простоты.