Как получить выделенный в Embedded View документ по кнопке на форме?

  • Автор темы Автор темы susinmn
  • Дата начала Дата начала
В обычном вью текущий документ берется с помощью UnpocessedDocuments.
а как на LotusScript получить выделенный документ во встроенном вью в кнопке на форме? (Action bar встроенного вида не подходит)
 
В обычном вью текущий документ берется с помощью UnpocessedDocuments.
а как на LotusScript получить выделенный документ во встроенном вью в кнопке на форме? (Action bar встроенного вида не подходит)
Прочитайте эту ветку сначала. Тут можно насчитать не менее трёх вариантов ответа на Ваш вопрос.
 
Прочитала, конечно. Но не встретила ни одного ответа. Наверное, потому что новичок и много не понимаю. nvy, спасибо за отзывчивость и помощь.
 
Прочитала, конечно. Но не встретила ни одного ответа. Наверное, потому что новичок и много не понимаю. nvy, спасибо за отзывчивость и помощь.
Вариант 1 (на собаках): link removed
Вариант 2 (на ЛС простой, в модальном окне глючит): link removed
Вариант 3 (на ЛС, самый сложный, на очередях): link removed

Выбирайте, какой Вам больше нравится, будем обсуждать дальше. Сам пробовал 2 и 3.
 
Я пошла по второму варианту.
Во вьюхе создать переменную типа NotesUIDocument, повесить на QueryOpen её инициализацию UIWorkspace.CurrentDocumen, на OnSelect повесить обновление какого-либо поля этого документа значением CurrentID.
на QueryOpen в виде я написала:
Код:
Dim WS as New NotesUIWorkSpace
Dim UIDoc as NotesUIDocument
Set UIDoc = WS.CurrentDocument

Нашла, что в 8 версии лотуса есть у NotesUIView событие OnSelect. Дело в том, что у меня 7-я. Есть ли здесь событие OnSelect?
 
Я пошла по второму варианту.

на QueryOpen в виде я написала:
Код:
Dim WS as New NotesUIWorkSpace
Dim UIDoc as NotesUIDocument
Set UIDoc = WS.CurrentDocument

Нашла, что в 8 версии лотуса есть у NotesUIView событие OnSelect. Дело в том, что у меня 7-я. Есть ли здесь событие OnSelect?

Из справки: Note This event is new with Release 8.
Вариант 3 тоже базируется на данном событии, так что остаётся либо вариант 1, либо смена версии
 
Можно. У вьюхи на событии TargetFrame( Single Click ) вешаем собаку:
@Environment( "testUNID" ; @Text(@DocumentUniqueID ) )

Ну и кнопка в документе:
unid:= @Environment( "testUNID" ) ;
@Command( [OpenDocument] ; UNID )

"testUNID" - это поле на форме, где встроен вид? в это поле должен записываться унид документа при щелчке по документам во встроенном виде? Я правильно понимаю?у меня почему-то не получается.
 
"testUNID" - это поле на форме, где встроен вид? в это поле должен записываться унид документа при щелчке по документам во встроенном виде? Я правильно понимаю?у меня почему-то не получается.

"testUNID" — это имя переменной окружения (в файле notes.ini), в которой сохраняется unid документа. Суть данного метода — когда кликаете по документу, в переменную окружения с именем "testUNID" записывается unid выбранного документа. В кнопке получаете значение переменной окружения и открываете документ как обычно. Вместо переменных окружения можно использовать поля профильного документа (см. @GetProfileField, @SetProfileField).
 
Команда @Environment - установка/получение переменных notes.ini, она не имеет отношения к форме документа и его полям.
Хелп, раздел "Getting and setting environment variables"
 
а где-то еще прописывать эту переменную testUNID надо? у меня выдает ошибку при щелчке на кнопке в форме "Cannot execute the specified command"
 
а где-то еще прописывать эту переменную testUNID надо? у меня выдает ошибку при щелчке на кнопке в форме "Cannot execute the specified command"
"testUNID" — это название переменной и оно может быть другим (лишь бы не повторялось в notes.ini). Писать его нужно в кавычках, как в примере, иначе Лотус будет думать что нужно брать значение переменной testUNID, а оно разумеется "". Попробуйте повыбирать во внедрённом представлении документы и проверять значение переменной в файле notes.ini после каждого выбора, оно должно меняться. После этого можно отлаживать кнопку. Хотя вроде всё должно работать, код тривиальный.
 
в файле notes.ini не появилась переменная testUNID
 
нашла переменную $testUNID.я оказывается смотрела notes.ini на сервере, а надо в клиенте. переменную меняет нормально. когда на кнопке в форме пишу unid:=@Environment("testUNID"), все хорошо, унид берется (проверяла prompt). А вот после @Command([OpenDocument]; UNID), выдает ошибку "Cannot execute the specified command".

Да бог с этой ошибкой! Если ответите, будет хорошо. Хоть буду знать в чем причина.
Самое главное, что теперь я поняла про notes.ini и про переменные окружения. На скриптах тоже же можно вытаскивать унид документа из notes.ini и дальше делать с ними, что мне надо.
nvy, огромное спасибо! Плюс не разрешают мне Вам ставить пока, поставлю через 4 дня.
 
нашла переменную $testUNID.я оказывается смотрела notes.ini на сервере, а надо в клиенте. переменную меняет нормально. когда на кнопке в форме пишу unid:=@Environment("testUNID"), все хорошо, унид берется (проверяла prompt). А вот после @Command([OpenDocument]; UNID), выдает ошибку "Cannot execute the specified command".
Попробуйте
Код:
@Command( [OpenDocument]; "0"; UNID)
Стоит иногда заглядывать в справку :)
 
эмм... кагбэ нада...
Код:
unid:= @Environment( "testUNID" );
@Command( [OpenDocument]; [b]"";[/b] unid )
не? ;)

О.О чуть не успел :)
 
самый простой вариант решения поставленный задачи по-моему такой..
на вьюхе делаете кнопку, в которой код, который получает выделенный(е) документ(ы)
что-то вроде
Код:
Dim ws As New NotesUIWorkspace
Dim uiview As NotesUIView	
Dim coll As NotesDocumentCollection
Dim doc As NotesDocument


Set uiview = ws.CurrentView	
Set coll = uiview.Documents
If coll.Count = 0 Then End	
Set doc = coll.GetFirstDocument ' выделенный документ
call ws.editdocument(true, doc, false)


и будет вам счастье
 
Мы в соцсетях:

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