Решено Uidoc удаление и закрытие

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

  1. k85

    k85 Well-Known Member

    Регистрация:
    11 окт 2011
    Сообщения:
    137
    Симпатии:
    0
    Код (LotusScript):

    Dim ws As New NotesUIWorkspace
    Dim uidoc As NotesUIDocument
    Set uidoc=ws.CurrentDocument
    Call uidoc.Close(True)
    Call uidoc.DeleteDocument()
    почему он открывает следующий документ на просмотр?
     
  2. alexas1

    alexas1 Lotus team
    Lotus team

    Регистрация:
    10 апр 2014
    Сообщения:
    562
    Симпатии:
    214
    патамушта НИЗЗЯ удалить док в UI из самого себя. Удаляй вызовом агента "удалителя" после закрытия дока.
     
  3. k85

    k85 Well-Known Member

    Регистрация:
    11 окт 2011
    Сообщения:
    137
    Симпатии:
    0
    пробую по примеру...
    Examples: DeleteDocument method
    Код (LotusScript):
    Sub Click(Source As Button)
      Dim workspace As New NotesUIWorkspace
      Dim uidoc As NotesUIDocument
      Set uidoc = workspace.CurrentDocument
      If Not ( uidoc.EditMode ) Then
        Call uidoc.DeleteDocument
      End If
    End Sub

    @alexas1,
    то есть всесто удаления вызывать агент, который будет удалять именно документ, а не uidoc?
     
  4. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    цель какая - если просто удалить док из БД - так напуркуя это делать через UI?
    получили unid, закрыли док, получили из БД (по unid) бэкэндовый, удалили
     
  5. alexas1

    alexas1 Lotus team
    Lotus team

    Регистрация:
    10 апр 2014
    Сообщения:
    562
    Симпатии:
    214
    - угу. А в агент передай параметр - UNID, там по нему возьми док и удали.
     
  6. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.046
    Симпатии:
    18
    и даже не крешится? ;)
     
  7. k85

    k85 Well-Known Member

    Регистрация:
    11 окт 2011
    Сообщения:
    137
    Симпатии:
    0
    @lmike,
    Код (LotusScript):
     
    Dim uidoc As NotesUIDocument
    Dim doc As NotesDocument
    Set uidoc=ws.CurrentDocument
    Set doc=uidoc.Document
    sunid = doc.UniversalID
    Call uidoc.Close
    Set doc = db.getDocumentByUNID(sunid)
    Call doc.Remove(True)
    Call ws.viewrefresh()
     
    sunid - находит, doc находит нормально (проверяю в дебагере), закрывает, но не удаляется документ
     
  8. alexas1

    alexas1 Lotus team
    Lotus team

    Регистрация:
    10 апр 2014
    Сообщения:
    562
    Симпатии:
    214
    - бессмысленный разговор: UI не приемлемо (ws это UI, если чо). Тока агентом снаружи.
     
  9. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    подъем за волосы
    Код (LotusScript):
    Sub Click(Source As Button)
    On Error Goto ErrH
    Dim uidoc As NotesUIDocument, doc As NotesDocument, wks As New NotesUIWorkspace, db As NotesDatabase
    Set db=wks.CurrentDatabase.Database
    Set uidoc=wks.CurrentDocument
    Set doc=uidoc.Document
    Dim unid As String
    unid=doc.UniversalID
    uidoc.Close True
    Delete uidoc
    Set doc=db.GetDocumentByUNID(unid)
    Call doc.RemovePermanently(True)
    Quit:
    Exit Sub
    ErrH:
    Error Err, RaiseError
    End Sub
     
    2 пользователям это понравилось.
  10. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    кнопка прям на форме, её можно скрыть и вызывать через JS
    document.forms[0].testdel.click();
    (задать в HTML пропертях имя и ID, в примере - testdel)
     
    2 пользователям это понравилось.
  11. alexas1

    alexas1 Lotus team
    Lotus team

    Регистрация:
    10 апр 2014
    Сообщения:
    562
    Симпатии:
    214
    - однако!
    на Queryclose тоже сработает (я так понимаю - удаление "ненужного" дока по условию...)
    Соль - Delete uidoc. Респект!
     
  12. k85

    k85 Well-Known Member

    Регистрация:
    11 окт 2011
    Сообщения:
    137
    Симпатии:
    0
  13. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    еще получение db не из дока
    (на всяк случай, ибо - может реф снести) и надо помнить (тем кто не вникал в детали жизни объектов ;) ) - что инстанс doc тоже снесет
     
    2 пользователям это понравилось.
Загрузка...
Похожие Темы - Uidoc удаление закрытие
  1. Antigo
    Ответов:
    2
    Просмотров:
    902
  2. Shandrik
    Ответов:
    3
    Просмотров:
    1.049
  3. VladSh
    Ответов:
    10
    Просмотров:
    2.311
  4. Zeka
    Ответов:
    20
    Просмотров:
    6.336
  5. wowa
    Ответов:
    6
    Просмотров:
    3.131

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