Еще Раз О Database Has Not Been Opened Yet

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

  1. seoman2

    seoman2 Lotus team
    Lotus team

    Регистрация:
    17 фев 2010
    Сообщения:
    435
    Симпатии:
    0
    Кто подскажет, почему


    Dim RDoc As NotesDocument
    Set RDoc=CurDB.CreateDocument
    RDoc.UniversalID=CurDoc.UniversalID
    Call CurDoc.Copyallitems(RDoc,False)
    RDoc.BasicForm=RDoc.Form
    RDoc.Form=FormName$
    RDoc.SaveOptions="0"

    Dim uiworkspace As New NotesUIWorkspace
    Call uiworkspace.EditDocument(False,RDoc) - эта строка выдает ошибку database has not been opened yet
     
  2. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.052
    Симпатии:
    146
    Режим К.О.-ON: Потому что не открыта.
    как объект CurDB получил? Проверку на открытие поставил?
     
  3. seoman2

    seoman2 Lotus team
    Lotus team

    Регистрация:
    17 фев 2010
    Сообщения:
    435
    Симпатии:
    0
    Set CurDB=Session.CurrentDataBase

    В дебагере вижу, что CurDB присваивается текущая база. Проверки не ставил.
     
  4. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.052
    Симпатии:
    146
    ну вот, попробуй так:
    Код (LotusScript):
    if CurDB.IsOpen then
    Dim RDoc As NotesDocument
    Set RDoc=CurDB.CreateDocument
    RDoc.UniversalID=CurDoc.UniversalID
    Call CurDoc.Copyallitems(RDoc,False)
    RDoc.BasicForm=RDoc.Form
    RDoc.Form=FormName$
    RDoc.SaveOptions="0"
    ....
    Else
    Error 5002, "База недоступна, имя: " & CurDB.Title
    End if
    Многие вещи с NotesDatabase нельзя проводить, пока она не открыта. Lotus help по Designer в помощь.
     
  5. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    не уверена, что даст открыть в режиме чтения созданный и несохраненный документ. проверьте наличие сейва
     
  6. seoman2

    seoman2 Lotus team
    Lotus team

    Регистрация:
    17 фев 2010
    Сообщения:
    435
    Симпатии:
    0
    База открывается, а проблема именно в
    Call uiworkspace.EditDocument(False,RDoc)
    Временный док открывается, но с варнингом.
    Видимо нельзя открывать на эдит просто так несохраненный док
     
  7. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.052
    Симпатии:
    146
    Да, такое есть, но сообщение обычно другое:
    ---------------------------
    Error
    ---------------------------
    Unable to find Document Window
    ---------------------------
    ОК
    ---------------------------
    Что и смутило.
     
  8. divankin

    divankin Senjor developer

    Регистрация:
    13 авг 2009
    Сообщения:
    182
    Симпатии:
    0
    C каких это пор нельзя?
    Есть баг во фреймах, что нельзя открыть во фрейме не сохраненный документ.
    Попробуйте выполнить такой код вне всяких фреймсетов, просто агентом из дизайнера.

    Еще смутила строка
    RDoc.UniversalID=CurDoc.UniversalID
    Откуда берется CurDoc? Может ли в текущей базе уже существовать документ с таким UNID? Что будет если закомментарить эту строку?
     
  9. seoman2

    seoman2 Lotus team
    Lotus team

    Регистрация:
    17 фев 2010
    Сообщения:
    435
    Симпатии:
    0
    RDoc.UniversalID=CurDoc.UniversalID
    Все в одной базе происходит.
     
  10. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.052
    Симпатии:
    146
    при сохранении RDoc выдаст ошибку, что такой документ уже есть в БД
    В чем скрытый смысл данного подхода?
    Возможность сохранить его как новую версию?

    Код (LotusScript):
    Call uiworkspace.EditDocument(False,RDoc)
    Открывает на чтение
    Код (LotusScript):
    Call uiworkspace.EditDocument(True,RDoc)
    Открывает на редактирвоание

    UPD: Проверил. Сохранился без ошибки, а раньше ругался... но UniversalID сменился и все равно не тот, что у первоначального... (8.5.3FP4)
     
Загрузка...

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