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

  • Автор темы susinmn
  • Дата начала
S

soleil

В обычном вью текущий документ берется с помощью UnpocessedDocuments.
а как на LotusScript получить выделенный документ во встроенном вью в кнопке на форме? (Action bar встроенного вида не подходит)
 
N

nvyush

В обычном вью текущий документ берется с помощью UnpocessedDocuments.
а как на LotusScript получить выделенный документ во встроенном вью в кнопке на форме? (Action bar встроенного вида не подходит)
Прочитайте эту ветку сначала. Тут можно насчитать не менее трёх вариантов ответа на Ваш вопрос.
 
S

soleil

Прочитала, конечно. Но не встретила ни одного ответа. Наверное, потому что новичок и много не понимаю. nvy, спасибо за отзывчивость и помощь.
 
N

nvyush

Прочитала, конечно. Но не встретила ни одного ответа. Наверное, потому что новичок и много не понимаю. nvy, спасибо за отзывчивость и помощь.
Вариант 1 (на собаках): link removed
Вариант 2 (на ЛС простой, в модальном окне глючит): link removed
Вариант 3 (на ЛС, самый сложный, на очередях): link removed

Выбирайте, какой Вам больше нравится, будем обсуждать дальше. Сам пробовал 2 и 3.
 
S

soleil

Я пошла по второму варианту.
Во вьюхе создать переменную типа 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?
 
N

nvyush

Я пошла по второму варианту.

на 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, либо смена версии
 
S

soleil

Можно. У вьюхи на событии TargetFrame( Single Click ) вешаем собаку:
@Environment( "testUNID" ; @Text(@DocumentUniqueID ) )

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

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

nvyush

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

"testUNID" — это имя переменной окружения (в файле notes.ini), в которой сохраняется unid документа. Суть данного метода — когда кликаете по документу, в переменную окружения с именем "testUNID" записывается unid выбранного документа. В кнопке получаете значение переменной окружения и открываете документ как обычно. Вместо переменных окружения можно использовать поля профильного документа (см. @GetProfileField, @SetProfileField).
 
H

hosm

Команда @Environment - установка/получение переменных notes.ini, она не имеет отношения к форме документа и его полям.
Хелп, раздел "Getting and setting environment variables"
 
S

soleil

а где-то еще прописывать эту переменную testUNID надо? у меня выдает ошибку при щелчке на кнопке в форме "Cannot execute the specified command"
 
N

nvyush

а где-то еще прописывать эту переменную testUNID надо? у меня выдает ошибку при щелчке на кнопке в форме "Cannot execute the specified command"
"testUNID" — это название переменной и оно может быть другим (лишь бы не повторялось в notes.ini). Писать его нужно в кавычках, как в примере, иначе Лотус будет думать что нужно брать значение переменной testUNID, а оно разумеется "". Попробуйте повыбирать во внедрённом представлении документы и проверять значение переменной в файле notes.ini после каждого выбора, оно должно меняться. После этого можно отлаживать кнопку. Хотя вроде всё должно работать, код тривиальный.
 
S

soleil

в файле notes.ini не появилась переменная testUNID
 
S

soleil

нашла переменную $testUNID.я оказывается смотрела notes.ini на сервере, а надо в клиенте. переменную меняет нормально. когда на кнопке в форме пишу unid:=@Environment("testUNID"), все хорошо, унид берется (проверяла prompt). А вот после @Command([OpenDocument]; UNID), выдает ошибку "Cannot execute the specified command".

Да бог с этой ошибкой! Если ответите, будет хорошо. Хоть буду знать в чем причина.
Самое главное, что теперь я поняла про notes.ini и про переменные окружения. На скриптах тоже же можно вытаскивать унид документа из notes.ini и дальше делать с ними, что мне надо.
nvy, огромное спасибо! Плюс не разрешают мне Вам ставить пока, поставлю через 4 дня.
 
N

nvyush

нашла переменную $testUNID.я оказывается смотрела notes.ini на сервере, а надо в клиенте. переменную меняет нормально. когда на кнопке в форме пишу unid:=@Environment("testUNID"), все хорошо, унид берется (проверяла prompt). А вот после @Command([OpenDocument]; UNID), выдает ошибку "Cannot execute the specified command".
Попробуйте
Код:
@Command( [OpenDocument]; "0"; UNID)
Стоит иногда заглядывать в справку :)
 
A

amigolinx

эмм... кагбэ нада...
Код:
unid:= @Environment( "testUNID" );
@Command( [OpenDocument]; [b]"";[/b] unid )
не? ;)

О.О чуть не успел :)
 
K

Kee_Keekkenen

самый простой вариант решения поставленный задачи по-моему такой..
на вьюхе делаете кнопку, в которой код, который получает выделенный(е) документ(ы)
что-то вроде
Код:
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)


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

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