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

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

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

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

Сообщений: 229


« Стартовое сообщение: 4 Август 2021, 13:14 »

Доброго.
Файл LO Calc представляет собой морду к базе данных SQLite, содержит необходимые для выполнения этой функции код и форматирование. Результаты работы в нем храниться не должны.
Можно ли как-то заблокировать возможность сохранения (и "сохранения как...", "сохранить копию...", "экспорт..." и пр.) этого файла пользователями?

Альтернативой представляется повесить на событие открытия файла макрос, возвращающий все "ин статус-кво". Это, в принципе, могу.
« Последнее редактирование: 4 Август 2021, 13:24 от ost » Записан
economist
Форумчанин
***
Offline Offline

Сообщений: 1 568


« Ответ #1: 4 Август 2021, 13:26 »

Только автостарт-макрос, при открытии:
- проверяющий что он не в копии
- очищающий всё
- убирающий лист-заставку (при закрытии другой макрос активирует лист-заставку). Это на случай того если calc-файл откроют в Excel, Gnumeric итп. Или в Calc с выключенными макросами.   

Сам файл морды защитить от записи (атрибутом, безопасность Windows итд)
Записан

Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...
ost
Форумчанин
***
Offline Offline

Сообщений: 229


« Ответ #2: 4 Август 2021, 13:34 »

- проверяющий что он не в копии
Можно чуть подробнее о том, как можно проверить, что запущенный файл не копия оригинала?
Записан
sokol92
Форумчанин
***
Offline Offline

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


WWW
« Ответ #3: 4 Август 2021, 13:54 »

Попробуйте относительно новый путь (с версии LO 6.3) и расскажите нам. Метод setArgs (и возможные параметры) описан здесь.

Код:
Sub DocumentLock
  Dim args(3) as new com.sun.star.beans.PropertyValue, s, i As Long
  For Each s In Array("LockContentExtraction", "LockExport", "LockPrint", "LockSave")
    args(i).Name=s
    args(i).Value=True
    i=i+1
  Next s 
 
  ThisComponent.setArgs args
End Sub
Записан

Владимир.
Bigor
Мастер
*****
Offline Offline

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


« Ответ #4: 4 Август 2021, 17:26 »

А если морду сохранить как шаблон, а то что сохранят периодически чистить
Записан

Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут
ost
Форумчанин
***
Offline Offline

Сообщений: 229


« Ответ #5: 4 Август 2021, 18:38 »

Тогда уж просто чистить. Без возни с шаблонами.
Записан
ost
Форумчанин
***
Offline Offline

Сообщений: 229


« Ответ #6: 4 Август 2021, 18:53 »

Попробуйте относительно новый путь
Спасибо, Владимир.
Что могу сказать, после успешного применения блокировки с помощью установки в "true" свойств "LockExport" и "LockSave" файл сохранить вроде бы нельзя.
Но в меню "Файл" остается активной "Сохранить все". И ее использование при активных блокировках "LockExport" и "LockSave", как я заметил, файл сохранить позволяет.
Кроме того, состояние, "LockExport" после сохранения и следующего открытия файла все равно сбрасывается. Точнее, среди структур массива структур com.sun.star.beans.PropertyValue (получаю по oDoc.getArgs) структур с .Name = "LockExport" и .Name = "LockSave" вообще нет.

Накостылял тут https://yadi.sk/i/vWn2-A4cauQjEA
« Последнее редактирование: 4 Август 2021, 18:55 от ost » Записан
sokol92
Форумчанин
***
Offline Offline

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


WWW
« Ответ #7: 4 Август 2021, 19:09 »

Спасибо за исследование.
Макрос из #3, на мой взгляд, лучше выполнять из события открытия документа.
То, что команда меню "Сохранить все" не игнорирует документы, у которых свойства "LockSave"  и "LockExport" установлены в True - баг (tdf#140020).
« Последнее редактирование: 4 Август 2021, 19:54 от sokol92 » Записан

Владимир.
Страниц: 1   Вверх
  Печать  
 
Перейти в:  

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