LibreOffice 6.3 Base не работает.

Автор Kadet, 15 августа 2019, 12:33

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

Kadet

#30
Так, я тут ещё подумал, что могут возникнуть проблемы со входом в мою БД, поэтому снова дополнил ReadMe. Там в сервере Firebird нужно прописать пользователя. Иначе пляшущие кнопки не увидеть и в БД под моим логином не впустит. В общем, тороплюсь, поэтому и переделываю. Извините. Выкладываю новый архив с изменённым ReadMe.

Да, перед открытием моей БД не забудьте закрыть Firebird SQL Tool командой QUIT; или просто крестиком. Иначе в моей БД начнут сыпаться ошибки при входе.

Цитата: rami от 11 сентября 2019, 11:50Это отключается в самом окошке с советом или в параметрах настройки "Общие".
Конечно отключается, но для этого до отключалки нужно ещё добраться. Или отключать её заранее из какого-нибудь другого дока LO. Теперь-то, когда я поймал эту проблему за хвост, я то конечно её заранее отключаю.
Однако, это всё равно проблема, которая появилась в 6.3 и ранее не наблюдалась.

Kadet

#31
Почитал описания найденных, дающих ошибки в моей БД, изменений (коммитов)...
Ну, в принципе, всё правильно распознал, т.е. причины ошибок.
Первый делал "советчика", второй - доработка графического представления Calc, а третий - создал ограничения количества столбцов в calc до 1024.

Первую ошибку ("советники"), в принципе, легко обойти (хотя было бы неплохо, если бы её вообще не было).
Третью (превышение предела форматирования) придётся обойти, потому что так задумано творцом (как он пишет "временно").
А вот вторая ошибка ("пляшущие кнопки") - это реальная проблема для моей базы, которая не даёт работать в 6.3.

Kadet

Насколько я понял, что установить, запустить и проверить мою БД ни у кого не удалось.
Т.е., получается не удалось увидеть мои проблемы на LO 6.3.

Поэтому решил записать пару видео-скринов с экрана и показать как БД работает на 6.2 и на 6.3

Видео можно скачать ЗДЕСЬ - Яндекс-Диск (170MB).

kompilainenn

Цитата: Kadet от 27 сентября 2019, 21:16Насколько я понял, что установить, запустить и проверить мою БД ни у кого не удалось.
скорее всего просто никто не стал этого делать, потому что это достаточно не тривиально.
Поддержать разработчиков LibreOffice можно тут, а наш форум вот тут

Kadet

Цитата: kompilainenn от 27 сентября 2019, 21:20
cкорее всего просто никто не стал этого делать, потому что это достаточно не тривиально.
Согласен, поэтому и не горел желанием выкладывать. По крайней мере знал, что никто не будет этим заморачиваться. Слишком морочно это.

kompilainenn

Цитата: Kadet от 27 сентября 2019, 21:33Слишком морочно это.
а вот багу написать следует, тем более это регрессии...
Поддержать разработчиков LibreOffice можно тут, а наш форум вот тут

Kadet

Попробую на выходных собраться с силами и написать багу.

Kadet

#37
Кажется придумал, как упростить запуск моей БД для просмотра описываемого бага.
Засунул базу во внутрь и теперь нужно только распаковать архив, почитать редми и правильно установить библиотеки макросов. Это просто.

Теперь-то попробую описать этот баг в багзиле и приложить свою демо БД.

Kadet


Kadet

mikekaganski, спасибо за расширенное ReadMy в багзиле. Видимо мои описания всё же были непонятны.

Цитата: mikekaganski (из багзилы)(Комментарий: шаги 4-9 кажутся странными; не знаю, зачем нужен повторный импорт, который заменяет библиотеку, импортированную на предыдущем шаге)
Поясню зачем и почему такая заморочка. Дело в том, что в этих блоках модулей находятся макросы, которые непосредственно работают со встроенным документом calc. И парадокс заключается в том, что этот OLE-IFrame документ calc воспринимается LO как вообще отдельный документ, совершенно не связанный с родителем. Т.е. - по сути этот calc-документ не видит макросы, относящиеся к базе. Он видит только макросы, которые находятся в библиотеке Standard, и любые попытки привязать библиотеки базы не помогают. Своих макросов у этого встроенного документа быть не может, потому что каждый раз при открытии формы создаётся новый встроенный calc-документ и существует он всего до закрытия родительской формы.

В то же время библиотеку Standard нельзя экспортировать/импортировать. Такая возможность закрыта в LO.

Вот и приходится переносить блоки макросов из Standard в отдельную временную библиотеку, затем экспортировать. А при импорте - делать обратную процедуру.

Хотя, конечно, по-сути в Standard можно было оставить всего один блок, и всё, что касается внутренней работы встроенного документа  засунуть в него, но основной блок в Standard (iListener) и так получился большим, да и не планировал я использование своей базы в массовых вариантах. Поэтому там получилось три блока макросов.

С вашего позволения, я скопирую ваш расширенный ReadMy в свой ReadMy.txt... авось пригодится.

mikekaganski

Kadet: моё непонимание было связано не с необходимостью импорта двух библиотек, а с необходимостью импорта каждой из них дважды :-)

Спасибо за работу над упрощением воспроизводства бага!
С уважением,
Михаил Каганский

Kadet

#41
Цитата: mikekaganski (из багзилы)13. Если форма показала пустую калькообразную сетку с метками столбцов / строк, щелкните внутри сетки, и она должна стать пустой без заголовков столбцов / строк (мне нужно было сделать этот щелчок; не знаю, есть ли обстоятельства, когда пробел область появится с самого начала)
Чаще всего появляется сама, с самого начала.
Поясню этот момент. Это вообще почти комичная ситуация.
Дело в том, что в своей базе я активно использую встроенные OLE-IFrame объекты, загоняя в них свои calc-таблицы. Для работы мне нужны динамические таблицы, которые можно красиво форматировать и активно редактировать, вносить изменения и пр. Перепробовав всякие разные способы для реализации этой задачи, предлагаемые LO base, меня ни один не удовлетворил. По разным причинам.
Нормальным оказался только OLE-IFrame, НО... в LO он вообще никак не развит. Его сделали, как "вот он есть", видимо предполагая только выводить в нём картинки или диаграммы, но методы "общения" с ним вообще не развили. Из родителя к внутреннему объекту,особенно к моим calc никак нельзя дотянуться. Мало того, этот вид вложения предусматривается ТОЛЬКО во Write, а в Base даже создать его нет никакой возможности. Вот и пришлось создавать этот объект во Write, а потом просто копировать в формы Base.

Так вот. Объект есть, а методов обращения к нему нет. Я не придумал ничего лучше, как "поймать его за хвост" и сохранить в глобальной переменной, а потом через неё обращаться к нему. Чтобы его отловить я запускаю листенер при открытии формы. Листенер проверяет тип документа при открытии. Т.е. в момент открытия моих форм по сути открывается два документа одновременно - сама форма и встроенный, но воспринимаемый LO как отдельный, не связаный с формой, calc-документ. Во время открытия формы запускается листенер, которые проверяет какой из документов сейчас ThisComponent. Чаще всего это бывает CALC, но иногда и Write, и когда, как и почему они меняются я так понять и не могу. И получается, что при загрузке программа иной раз ловит этот calc-документ, а иной раз нет, а пока он не пойман и на зафиксирован в глобальной переменной к нему обращаться никак нельзя. Вот я и придумал сделать своеобразный маркер, индикатор, что если поле чистое, уже отформатированное - то документ calc зафиксирован и с ним можно работать, а если сетка, то программа его не видит. И если он был не найден при загрузке, то для этого я сделал другой листенер на клик мыши. Оператор просто сам указывает программе, что мол "вот он", и тогда программа его фиксирует.

Навевает ассоциация с фильмом "вий" - "поднемите мне веки... вот он"... и вся нечесть нападает на бедного Фому.

Kadet

#42
Цитата: mikekaganski от 29 сентября 2019, 09:23а с необходимостью импорта каждой из них дважды :-)
"Каждой из них дважды"?!... Я такое написал?! Как бы нет. Один раз импортнули каждую библиотеку, перенесли и хватит.
Цитата: mikekaganski от 29 сентября 2019, 09:23Спасибо за работу над упрощением воспроизводства бага!
Да не за что. Всегда готов.

Kadet

mikekaganski, вы не увидели мерцание кнопок?! Странно, но я тестировал эту проблему на нескольких машинах с разными OS и везде получал один и тот же результат.

А видеоролик запостить в багзилу можно?

Kadet

#44
Вот, сделал скрин и отметил проблемные кнопки.

А в багзиле выложил и видео-скрин с "пляшущими" кнопками (здесь выложить не разрешает размер 5,45МБ)

Кстати, OpenGL у меня, почему-то вообще не включается, вернее включается, но после перезагрузки снова отключается.
Хотя, проверил, он никак не влияет на проблему.