ОБСУЖДЕНИЕ

Notesdocument.isuidocopen

16 ответов 7,1 тыс.
AI-выжимка обсуждения скоро

Краткие тезисы обсуждения со ссылками на ключевые ответы появятся здесь.

Автор темы
как узнать что NotesDocument открыть в UI
где нибудь c cети в клиенте лотуса

NotesDocument.IsUIDocOpen не помогает
 
tmp=doc.LockHolders
ss=Cstr(tmp(Lbound(tmp)))

always ss="" ???
хотя документ открыть в соседнем компе
 
yerke
А документ локинг поднят?
 
А документ локинг поднят?
не подходит
так как я проверяю не открыт ли респонсы данного дока
а не сам док


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

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

Каким образом можно определить, открыт ли у меня документ?

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

Ситуация такая: у меня есть документ, открытый либо закрытый и другой документ, с которым он сввязан. Если я изменяю определенное поле во втором документе, оно должно обновиться и в первом. Соответственно проверить надо, не открыт ли он уже у меня(про других сейчас не думаем), потому как если он у меня уже открыт и я его изменю через скажем doc.replaceItemValue... , то ничего хорошего не получится... А отследить это проще всего было бы через IsUIDocOpen, которое имеет значение False даже если документ у меня в данный момент и открыт.
 
xalet
Имеем базу, в которой при обновлении респонса обновляется родительский док. В кнопке сохранения примерно такой код:
Код:
Set parentDoc = db.GetDocumentByUNID(doc.ParentDocumentUNID)
...
If parentDoc.IsUIDocOpen Then Call ReloadUIDocByDoc(parentDoc)
ReloadUIDocByDoc — самописная функция переоткрытия документа в уи.
Всё работает.
 
А отследить это проще всего было бы через IsUIDocOpen, которое имеет значение False даже если документ у меня в данный момент и открыт.

Как вы получаете первый документ? Если через вьюшку, то попробуйте заменить на получение по UNID.
 
Как вы получаете первый документ? Если через вьюшку, то попробуйте заменить на получение по UNID.

Изначально было из вьюшки. Заменил по UNID. Результат тот же.

Клиент и Домино 8.5.1.
 

Статистика тем

Создано
yerke,
Последний ответ от
nvyush,
Ответы
16
Просмотры
7 137