Notesdocument.isuidocopen

Тема в разделе "Lotus - Программирование", создана пользователем yerke, 24 фев 2009.

  1. yerke

    yerke Well-Known Member

    Регистрация:
    28 авг 2007
    Сообщения:
    392
    Симпатии:
    0
    как узнать что NotesDocument открыть в UI
    где нибудь c cети в клиенте лотуса

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

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
  3. yerke

    yerke Well-Known Member

    Регистрация:
    28 авг 2007
    Сообщения:
    392
    Симпатии:
    0
    tmp=doc.LockHolders
    ss=Cstr(tmp(Lbound(tmp)))

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

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    yerke
    А документ локинг поднят?
     
  5. yerke

    yerke Well-Known Member

    Регистрация:
    28 авг 2007
    Сообщения:
    392
    Симпатии:
    0
    не подходит
    так как я проверяю не открыт ли респонсы данного дока
    а не сам док


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

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

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    sleep
     
  7. yerke

    yerke Well-Known Member

    Регистрация:
    28 авг 2007
    Сообщения:
    392
    Симпатии:
    0
    блин sleep тоже не помог
    че делать
    подскажите господа
     
  8. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Писать свой локинг.
    Некое пространство унидов открытых документов.
     
  9. Xalet

    Xalet Well-Known Member

    Регистрация:
    8 авг 2008
    Сообщения:
    410
    Симпатии:
    0
    а зачем тогда вообще эта штука, если она не работает?

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

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Она работает в пределах одной рабочей станции.
     
  11. nvyush

    nvyush Lotus team
    Lotus team

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

    Xalet Well-Known Member

    Регистрация:
    8 авг 2008
    Сообщения:
    410
    Симпатии:
    0
    Как пример...

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

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    xalet
    Имеем базу, в которой при обновлении респонса обновляется родительский док. В кнопке сохранения примерно такой код:
    Код (Text):
    Set parentDoc = db.GetDocumentByUNID(doc.ParentDocumentUNID)
    ...
    If parentDoc.IsUIDocOpen Then Call ReloadUIDocByDoc(parentDoc)
    ReloadUIDocByDoc — самописная функция переоткрытия документа в уи.
    Всё работает.
     
  14. TIA

    TIA :-)
    Lotus team

    Регистрация:
    15 май 2009
    Сообщения:
    790
    Симпатии:
    0
    Как вы получаете первый документ? Если через вьюшку, то попробуйте заменить на получение по UNID.
     
  15. Xalet

    Xalet Well-Known Member

    Регистрация:
    8 авг 2008
    Сообщения:
    410
    Симпатии:
    0
    Изначально было из вьюшки. Заменил по UNID. Результат тот же.

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

    TIA :-)
    Lotus team

    Регистрация:
    15 май 2009
    Сообщения:
    790
    Симпатии:
    0
    В 7ке способ точно рабочий. В 8.5 не пробовал.
     
  17. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    В 8.0.2(Basic) работало. Неужели поломали?
     
Загрузка...

Поделиться этой страницей