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

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

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

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

Пол: Женский
Расположение: Донецкая обл.
Сообщений: 259


« Стартовое сообщение: 13 Февраль 2014, 10:37 »

Макрос просто закрывает форму (с сохранением БД). Мне нужен одновременно выход из OpenOffice. Не могу найти что-то типа EXIT

Sub Exit_balans
dim document as object
dim dispatcher as object
   document = ThisComponent.CurrentController.Frame
   dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
   dispatcher.executeDispatch(document, ".uno:Save", "", 0, Array())
        ThisComponent.CurrentController.Frame.close(true)
End Sub
Записан

Яна (in real)
Yakov
Администратор
**
Offline Offline

Сообщений: 2 397


WWW
« Ответ #1: 13 Февраль 2014, 11:23 »

Скорей всего, из Basic сделать это нельзя, зато можно сделать из Python.
А из  Basic вызвать макрос на Python.
Записан

adi_den2013
Форумчанин
***
Offline Offline

Пол: Женский
Расположение: Донецкая обл.
Сообщений: 259


« Ответ #2: 13 Февраль 2014, 11:30 »

Пока обойдусь стандартным Ctrl+Q.

Язык Python не знаю.
Записан

Яна (in real)
adi_den2013
Форумчанин
***
Offline Offline

Пол: Женский
Расположение: Донецкая обл.
Сообщений: 259


« Ответ #3: 13 Февраль 2014, 12:07 »

dispatcher.executeDispatch(document, ".uno:Save", "", 0, Array())

Кстати - это ведь сохранение формы как документа, а не БД. Как сохранить базу данных?
Записан

Яна (in real)
JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Киев
Сообщений: 2 764


Помогаю людям и компьютерам понимать друг друга


WWW
« Ответ #4: 13 Февраль 2014, 12:29 »

Ян, а ты уверена что нужно закрыть ВЕСЬ офис? Такой вариант существует, но стрёмно... А вдруг у человека помимо твоей базы в том же офисе была открыта пачка документов и таблиц с кучей правок, а тут - оп-па! - "тебе это всё не надо, закрываемся!"

Если все-таки хочешь закрываться полностью, посмотри у Питоньяка  5.8. Open And Close Documents (And The Desktop)

А база сохраняется, кажется, через ThisComponent.getParent().DataSource.DatabaseDocument.store()
Записан

Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне
Yakov
Администратор
**
Offline Offline

Сообщений: 2 397


WWW
« Ответ #5: 13 Февраль 2014, 12:32 »

Посмотрел команды диспетчера:
https://wiki.openoffice.org/wiki/Framework/Article/OpenOffice.org_3.x_Commands

.uno:Close  - закрывает текущее окно


а вот .uno:CloseDoc закрывает компонент
Код:
Sub Exit_balans
dim document as object
dim dispatcher as object
   document = ThisComponent.CurrentController.Frame
   dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
   dispatcher.executeDispatch(document, ".uno:CloseDoc", "", 0, Array())

End Sub

« Последнее редактирование: 13 Февраль 2014, 12:38 от Yakov » Записан

adi_den2013
Форумчанин
***
Offline Offline

Пол: Женский
Расположение: Донецкая обл.
Сообщений: 259


« Ответ #6: 13 Февраль 2014, 12:40 »

Ян, а ты уверена что нужно закрыть ВЕСЬ офис?

Вот уж уверена! Бухгалтерия - привилегированный класс, одни из многих не перешедшие из платного офиса на бесплатный  Злой .

Поэтому такая круговерть с оборотом документов OpenOffice Writer (только этот отчет)-> Microsoft Word (вся остальная документация)-> Acrobat Reader(PDF) потому, что Word не понимает ссылки на переменные которые формируются программно и ругается / чтобы красиво выглядело на печати/

 И еще - мне нужно заблокировать доступ к таблицам, который открывается просто при закрытии главной формы. Чтобы не  разгребать потом руины после случайно натыканных кнопок..
« Последнее редактирование: 13 Февраль 2014, 12:46 от adi_den2013 » Записан

Яна (in real)
JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Киев
Сообщений: 2 764


Помогаю людям и компьютерам понимать друг друга


WWW
« Ответ #7: 13 Февраль 2014, 13:58 »

Бухгалтерия - привилегированный класс...
О, да! "В древней Спарте толстых и некрасивых женщин скидывали в бухгалтерию."
Записан

Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне
Страниц: 1   Вверх
  Печать  
 
Перейти в:  

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