• Paranoid - курс по анонимности и безопасности в сети от команды codeby. Защита персональных данных, анонимность в сети интернет, настройка виртуальных машин, безопасная передача данных, анти форензика и еще много всего полезного. Подробнее ...

Режим редактирования

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#1
Вот такая проблема есть сейчас.
Надо сделать:
1) Убрать вход в режим редактирования документа по двойному клику.
2) Добавить вход в режим редактирования документа по нажатию кнопки "Редактировать".
3) Возможность входа в режим редактирования с помощью формул.

Пункт 1 и 2 сделал путем ввода глобальной переменной:
Код кнопки "Редактировать"
Код:
Sub Click(Source As Button)
Dim workspace As New NotesUIWorkspace
editFlag=True
Call workspace.EditDocument(True)	
End Sub
Код события:
Код:
Sub Querymodechange(Source As Notesuidocument, Continue As Variant)
If (Source.EditMode=False) And (editFlag=False) Then Continue=False
End Sub
Соответственно код, типа @Command([EditDocument];"1";"0") перестает работать.

Как сделать пункт 1, 2 и 3 ?

Или как изменить поле с помощью формул ? Т.к. после переопределения события QueryModeChange, это сделать нельзя.
 
D

Domino6

#2
Переключатель editFlag напиши не переменной в скрипте а общей переменной для скрипта и формул

К примеру в notes.ini

Script :

установка
Dim session As New NotesSession
Call session.SetEnvironmentVar("ENVLoc", "1")

чтение
Dim session As New NotesSession
editFlagr=session.GetEnvironmentString( "editFlagr" )


Формулы
установка
@SetEnvironment("editFlagr";"1");

чтение
@Environment("editFlagr")


Или скрести @formul с Script:
1. Напиши агента на скрипте
2. Напиши кнопку на формулах. Выполни кнопку а в конце вызови агента
 

Andre

Well-known member
29.07.2004
108
0
#3
Применительно к пункту 1 - вариант с открытием документа при помощи комбинации клавиш Ctrl + E, т.е. открытие документа непосредственно на редактирование, я бы тоже порекомендовал обработать. Подходит событие QueryOpen

По поводу переключения режимов и пункта 2 и 3 - я бы сделал скрытое поле в документе для запрещения\разрешения редактирования и игрался с ним, но это если применительно к конкретному документу, а не с установкой режима разрешающего\запрещающего редактирование для всех документов в базе
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#5
Andre, и спасибо за CTRL-E. Не знал, что еще так можно. :)
 
A

Azazel

#6
здравствуйте, чтобы не создавать новой темы - я продолжу эту. вопрос мой именно относительно пункта 1. как сделать, чтобы по двойному клику документ открывался именно на чтение. в теме я ответа так и не нашел - а может, что не так понял. заранее благодарен.
 

morpheus

скриптописец
07.08.2006
3 915
1
#7
Для: Azazel
а у меня по двойному клику открываеться на чтение, может у вас на открытие стоит сразу режим редактирования?
 
A

Azazel

#8
сложно сказать, потому что я не знаю, где именно это меняется ) проблема в том, что когда один документ открыт, при попытке открыть этот же документ с другого юзера, то выдается сообщение о том, что данный документ редактируется первым пользователем и поэтому открыть его нельзя.
 

morpheus

скриптописец
07.08.2006
3 915
1
#9
Для: Azazel
В свойствоах любой формы , во 2й закладке в секции OnOpen есть поле Automatically Enabled Edit mode
вот исходя из этой галки документ автоматом открываеться в режиме редактирования
 
A

Azazel

#11
сам не заметил, что возникла другая проблема. в режиме чтения почему-то вордовские документы показывают только одну страницу ( даже если их на самом деле несколько ). хранятся данные в полях RTF. если перейти в режим редактирования, то документ снова показывает все страницы.в чем дело понять не могу. поизменял настройки полей. не помогло.