Как на Lotusscript выделить документ в представлении

  • Автор темы soleil
  • Дата начала
Статус
Закрыто для дальнейших ответов.
S

soleil

Гость
#1
Необходимо программно переместить строку выделения на другой документ в представлении. Можно ли как-то использовать для этого UnprocessedDocuments?
 

hosm

* so what *
18.05.2009
2 442
9
#2
что-то типа SelectDocument должно быть, посмотрите в хелпе
 

xKlonx

Well-Known Member
Lotus team
10.09.2009
410
0
#3
Вот вам пример из хелпа:
Код:
Sub Click(Source As Button)
Dim session As New NotesSession
Dim db As NotesDatabase
Dim workspace As New NotesUIWorkspace
Dim collection As NotesDocumentCollection
Dim doc As NotesDocument
Dim uiview As NotesUIView
Set db = session.CurrentDatabase
Set uiview = workspace.CurrentView
Set collection = db.AllDocuments
Set doc = collection.GetFirstDocument
Call uiview.SelectDocument(doc)
End Sub
 
D

Darker

Гость
#4
Вообще UI-ный метод .SeletDocument как погода, то селектиться, то нет, а иногда селектиться, но экран уходит далеко вниз и не видно какой документ выделился
 
S

soleil

Гость
#5
Спасибо. Все получилось с помощью SelectDocument.
 
S

soleil

Гость
#6
Как сделать чтобы после создания документа по форме, после закрытия формы этот новый документ выделялся в представлении?
 

hosm

* so what *
18.05.2009
2 442
9
#7
наверно, стоит сперва прорефрешить вьюху - через ws.ViewRefresh или NotesView.Refresh, а потом выделять документ.
 
S

soleil

Гость
#8
Да, я обновляю вид. Но дело в том, что SelectDocument работает только с NotesUIView. А т.к. я прописываю код на кнопке сохранения формы, то могу использовать только NotesView. Или может я чего-то недопонимаю?
Т.е. если это текущий вид, то я могу взять его как WS.CurrentView, а если я на форме нахожусь то беру его как DB.GetView("ViewName")
Могу ли я из формы получить UIView?
 

hosm

* so what *
18.05.2009
2 442
9
#9
наверно, я туплю - но как Вы собираетесь выделить документ не в уи-виде? %)
если вид не открыт, откройте его.
Что, текущий вид встроен в форму, что его из формы пытаетесь получить?
Код по выделению документа действительно иногда глючит, обычно заключается в обработчик.
Код:
Set UIView = ws.CurrentView
On Error Resume Next
If Not uiView Is Nothing Then
Call uiView.View.Refresh
UIView.SelectDocument(doc)	
End If
On Error Goto 0
 
S

soleil

Гость
#10
Смотрите. У меня открыт вид. Я создаю новый документ по форме. Открывается форма. Потом нажимается кнопка Сохранить и Закрыть. Форма закрывается. В рабочей области находится вид. Теперь новый документ должен выделиться в этом виде.
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 492
367
#11
если док создавался при открытой вьюшке, доступен view.Title (опред. время ^_^ )
по нему тоже можно получить инстанс вьюшки (при старте формы, например)
код выше выделяет док
если вьюшка по каким-либо причинам не обновилась (и док не отобразился) - будет облом, но тогда надо "заставить" вьюшку обновиться, до селекта
код можно поместить в разные эвенты формы (QueryClose, например, помня об отмене создания дока)
 
S

soleil

Гость
#12
Прошу прощения за глупый вопрос. Что такое инстанс вида?
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 492
367
#13
экземпляр объекта
и в посте выше - д.б. @ViewTitle (в CFD поле, КомпьютедФорДисплей)
типа Set view=db.GetView(VIEWTILTLE_FIELD)
 
Статус
Закрыто для дальнейших ответов.