• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

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

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
4
Вот такая проблема есть сейчас.
Надо сделать:
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

Переключатель 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

Green Team
29.07.2004
114
1
BIT
1
Применительно к пункту 1 - вариант с открытием документа при помощи комбинации клавиш Ctrl + E, т.е. открытие документа непосредственно на редактирование, я бы тоже порекомендовал обработать. Подходит событие QueryOpen

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

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
4
Andre, и спасибо за CTRL-E. Не знал, что еще так можно. :)
 
A

Azazel

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

morpheus

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

Azazel

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

morpheus

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

Azazel

как же я был глуп ) спасибо большое.
 
A

Azazel

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

Обучение наступательной кибербезопасности в игровой форме. Начать игру!