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

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

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

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

Сообщений: 220


« Стартовое сообщение: 13 Октябрь 2019, 12:14 »

Давно столкнулся с этой проблемой, но пока не нашёл решения. Просто временно отключил.

В работе с БД пытаюсь скрыть главную форму, т.е. внутренности самой БД. Во-первых, чтобы никто не смог даже случайно в неё влезть. А во-вторых, главная форма просто болтается всегда и только мешает.
Для этого использую скрытие мотодом    .setVisible(False) при запуске БД.
Код:
ThisComponent.CurrentController.Frame.ContainerWindow.setVisible(False)
Вроде бы всё работает. Главная форма скрывается. Открывается рабочая форма. Все вторичные формы открываются и закрываются без проблем.
Однако, при формировании любого отчёта (Raport), а потом закрытии его - закрывается вся БД.

Может кто сталкивался с подобной проблемой и знает как она решается?
Записан
Kadet
Форумчанин
***
Offline Offline

Сообщений: 220


« Ответ #1: 13 Октябрь 2019, 13:16 »

Чуть приблизился к пониманию этой проблемы.
Глюк проявляется когда закрывается последний или единственный отчёт. Если открытых отчётов несколько и закрываешь один из них - глюк не проявляется.

Думаю так. Формы и отчёты являются документами Write и при закрытии последнего отчёта LO даёт команду на закрытие вообще редактора Weite, не обращая внимания на то, что формы тоже Write. Вот всё в куче и закрывает.

Если головная форма БД не скрыта этот глюк не проявляется.
Записан
Kadet
Форумчанин
***
Offline Offline

Сообщений: 220


« Ответ #2: 13 Октябрь 2019, 14:08 »

Проблему решил обходным путём.
Так как глюк проявляется только при скрытой головной формой БД, а в открытой нет, решил при закрытии отчётов просто временно открывать главную форму, а потом снова скрывать.
В редакторе форм открываю Настройки: Сервис > Настройки. Во вкладке "События" вешаю два макроса.
На событие "Документ будет закрыт" вешаю макрос:
Код:
Sub CloseRaport1()
ThisDatabaseDocument.CurrentController.Frame.ContainerWindow.setVisible(True)
End Sub

А на событие "Документ закрыт" вешаю другой:
Код:
Sub CloseRaport2()
ThisDatabaseDocument.CurrentController.Frame.ContainerWindow.setVisible(False)
End Sub

В Base достаточно настроить так один отчёт и настройки автоматически переходят на все остальные.
Вроде бы всё работает.
« Последнее редактирование: 13 Октябрь 2019, 14:10 от Kadet » Записан
Страниц: 1   Вверх
  Печать  
 
Перейти в:  

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