Notesdocument.isuidocopen

yerke

Well-known member
28.08.2007
392
0
#1
как узнать что NotesDocument открыть в UI
где нибудь c cети в клиенте лотуса

NotesDocument.IsUIDocOpen не помогает
 

yerke

Well-known member
28.08.2007
392
0
#3
tmp=doc.LockHolders
ss=Cstr(tmp(Lbound(tmp)))

always ss="" ???
хотя документ открыть в соседнем компе
 

yerke

Well-known member
28.08.2007
392
0
#5
А документ локинг поднят?
не подходит
так как я проверяю не открыт ли респонсы данного дока
а не сам док


или кто знает
как задержать выполнение скрипта на 2-3 секунды ;)

так я смог бы определить документом работают в UI или нет
 

Omh

Lotus team
04.07.2007
2 210
1
#8
Писать свой локинг.
Некое пространство унидов открытых документов.
 

nvyush

Lotus team
22.04.2009
2 317
0
#11
а зачем тогда вообще эта штука, если она не работает?

Каким образом можно определить, открыт ли у меня документ?
Из хелпа: Indicates whether a NotesDocument object (back-end document) is accessed through a NotesUIDocument object (front-end document).
Т.е. в событиях формы Source.Document.IsUIDocOpen = True
Однако ж замечал, что если в бэкэнде открыть документ, уже открытый в уи, то у него тоже IsUIDocOpen = True. А вот если документ открыт кем-либо ещё, то это свойство не поможет.
 

Xalet

Well-known member
08.08.2008
410
0
#12
Однако ж замечал, что если в бэкэнде открыть документ, уже открытый в уи, то у него тоже IsUIDocOpen = True. А вот если документ открыт кем-либо ещё, то это свойство не поможет.
Как пример...

Ситуация такая: у меня есть документ, открытый либо закрытый и другой документ, с которым он сввязан. Если я изменяю определенное поле во втором документе, оно должно обновиться и в первом. Соответственно проверить надо, не открыт ли он уже у меня(про других сейчас не думаем), потому как если он у меня уже открыт и я его изменю через скажем doc.replaceItemValue... , то ничего хорошего не получится... А отследить это проще всего было бы через IsUIDocOpen, которое имеет значение False даже если документ у меня в данный момент и открыт.
 

nvyush

Lotus team
22.04.2009
2 317
0
#13
xalet
Имеем базу, в которой при обновлении респонса обновляется родительский док. В кнопке сохранения примерно такой код:
Код:
Set parentDoc = db.GetDocumentByUNID(doc.ParentDocumentUNID)
...
If parentDoc.IsUIDocOpen Then Call ReloadUIDocByDoc(parentDoc)
ReloadUIDocByDoc — самописная функция переоткрытия документа в уи.
Всё работает.
 

TIA

:-)
Lotus team
15.05.2009
790
3
#14
А отследить это проще всего было бы через IsUIDocOpen, которое имеет значение False даже если документ у меня в данный момент и открыт.
Как вы получаете первый документ? Если через вьюшку, то попробуйте заменить на получение по UNID.