Новый документ

Тема в разделе "Lotus - Программирование", создана пользователем ak-47, 12 сен 2006.

  1. ak-47

    ak-47 Гость

    Создаю новый документ, в котором есть экшен с таким кодом:
    Dim ws As New NotesUIWorkspace
    Dim db As NotesDatabase
    Dim uidb As NotesUIDatabase
    Dim view As NotesUIView
    Dim coll As NotesDocumentCollection
    Dim doc As NotesDocument , selected_doc As NotesDocument
    Dim uidoc As NotesUIDocument

    Set uidb = ws.CurrentDatabase

    Set db = uidb.Database
    Set view = ws.CurrentView
    Set uidoc = ws.CurrentDocument
    Set selected_doc = uidoc.Document


    If uidoc.IsNewDoc=True Then
    Messagebox "uidoc.TRUE!!!"
    Else
    Messagebox "uidoc.NE TRUE!!!"
    End If

    If selected_doc Is Nothing Then Exit Sub


    If selected_doc.IsNewNote=True Then
    Messagebox "selected_doc.TRUE!!!"
    Else
    Messagebox "selected_doc.NE TRUE!!!"
    End If

    после клика по экшену(до сохранения) получаю:
    1) "uidoc.NE TRUE!!!"
    2) "selected_doc.TRUE!!!"
    после сохранения, ситуация не меняется

    после закрытия, и открытия сохраненного документа получаю
    1) "uidoc.NE TRUE!!!"
    2) "selected_doc.NE TRUE!!!"

    чем можно объяснить подобные странности? почему IsNewNote не меняет значение после сохранения




    да..
    экшен сохранения - shared, с такой @-коммандой : @PostedCommand([FileSave])
     
  2. Elena Nefedova

    Elena Nefedova Гость

    Видимо, потому не меняет, что на QueryOpen что-то висит.
    Либо каким-то другим способом вновь создаваемый документ изменяется до его открытия в UI, что и позволяет лотусу не считать данный Note новым
     
  3. ak-47

    ak-47 Гость

    С этим полностью согласен, т.к. документ создается программно с помощью метода ws.EditDocument - то IsNewDoc будет иметь значение FALSE.

    А вообще проблемму решил следующим образом.

    получаю UNID документа, таким образом ws.CurrentDocument.Document.UniversalID
    потом пытаюсь получить объект документа при помощи db.getDocumentByUNID
    - если ошибки нет, то документ уже сохранен
    - если выскакивает ошибка, то считаем, что документ еще не сохранен, и при помощи обработчика ошибок, передаем управление в нужное нам место
     
  4. Elena Nefedova

    Elena Nefedova Гость

    По-моему, если документ не записан, то у него NoteID = 0, хотя UNID уже не нулевой.
    Но я документацию на эту тему не читала, так что это может оказаться рецепт не на все случаи жизни :wacko:
     
  5. ak-47

    ak-47 Гость

    Все верно... NoteID=0, а вот UNID - уже существует... но подставив его в getDocumentByUNID получаем ошибку с каким то там кодом... этим собственно я и воспользовался
     
Загрузка...

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