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

  • Автор темы Автор темы seoman2
  • Дата начала Дата начала

seoman2

Green Team
17.02.2010
507
1
BIT
72
Кто подскажет, почему


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
 
Режим К.О.-ON: Потому что не открыта.
как объект CurDB получил? Проверку на открытие поставил?
 
Set CurDB=Session.CurrentDataBase

В дебагере вижу, что CurDB присваивается текущая база. Проверки не ставил.
 
ну вот, попробуй так:
Код:
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 в помощь.
 
не уверена, что даст открыть в режиме чтения созданный и несохраненный документ. проверьте наличие сейва
 
База открывается, а проблема именно в
Call uiworkspace.EditDocument(False,RDoc)
Временный док открывается, но с варнингом.
Видимо нельзя открывать на эдит просто так несохраненный док
 
Видимо нельзя открывать на эдит просто так несохраненный док
Да, такое есть, но сообщение обычно другое:
---------------------------
Error
---------------------------
Unable to find Document Window
---------------------------
ОК
---------------------------
Что и смутило.
 
Видимо нельзя открывать на эдит просто так несохраненный док

C каких это пор нельзя?
Есть баг во фреймах, что нельзя открыть во фрейме не сохраненный документ.
Попробуйте выполнить такой код вне всяких фреймсетов, просто агентом из дизайнера.

Еще смутила строка
RDoc.UniversalID=CurDoc.UniversalID
Откуда берется CurDoc? Может ли в текущей базе уже существовать документ с таким UNID? Что будет если закомментарить эту строку?
 
при сохранении RDoc выдаст ошибку, что такой документ уже есть в БД
В чем скрытый смысл данного подхода?
Возможность сохранить его как новую версию?

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

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

Обучение наступательной кибербезопасности в игровой форме. Начать игру!