• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

При сохранении документа выдается : "object Variable Not Set&quot

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

iosif88

Помогите разобраться.
При сохранении документа выдается сообщение "Object variable not set " и номер (поле RequestNo ) не создается.
Sub Querysave(Source As Notesuidocument, Continue As Variant)

Dim s As New NotesSession
Dim w As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim doc As NotesDocument
Dim db As NotesDatabase
Dim numView As NotesView
Set w = New NotesUIWorkspace
Set db = s.CurrentDatabase
Set s = New NotesSession
Set uidoc = w.CurrentDocument
Set doc = uidoc.Document
Continue = CheckFieldValues ( doc )

If Continue Then
If doc.RequestNo(0) = "" Then
Dim view As NotesView
Dim DocRef As NotesDocument
Set numView = db.GetView ("(RequestNo)")
Set DocRef = numView.GetFirstDocument
If (DocRef Is Nothing) Then
doc.RequestNo = 1000
Else
doc.RequestNo = DocRef.RequestNo(0) + 1
End If
End If
End If

End Sub

Я сам в Лотусе новичок, код скопирован из книги в мое приложение.
В чем ошибка?
 
L

LuMee

Хорошо бы знать, где конкретно ошибка вылетает. Предварительно следует проверить, что вьюха (RequestNo) создана и имеет именно такое название, а также проверить на вшивость функцию CheckFieldValues.
 
I

iosif88

Т.е. вьюха должна быть точно RequestNo?
 
A

alik86

По всей видимости ошибка выскакивает ввиду того, что у тебя еще нет объекта doc, т.е. у тебя новый документ Notesuidocument, который еще не был сохранен, следовательно Set doc = uidoc.Document ничего не возвращает и на If doc.RequestNo(0) = "" Then Lotus ругает тебя...
 
A

Akupaka

По всей видимости ошибка выскакивает ввиду того, что у тебя еще нет объекта doc, т.е. у тебя новый документ Notesuidocument, который еще не был сохранен, следовательно Set doc = uidoc.Document ничего не возвращает
это правда только в QueryOpen нового документа

по коду:

Код:
Dim s As New NotesSession
Dim w As New NotesUIWorkspace
...
Set w = New NotesUIWorkspace ' <--- это лишнее! объект w был инициализирован раньше при описании переменной: Dim w As New NotesUIWorkspace

Set db = s.CurrentDatabase
Set s = New NotesSession ' <--- аналогично w, иначе в предыдущей строке была бы ошибка! т.к. тогда была бы попытка использования объекта до инициализации

проверяй то, что советовал LuMee
 
A

alik86

Опля!!! Точно! Всё что написал выше, всё ж зря... Не углядел :(
Выбачайце... :)
 
A

Akupaka

А што такое цi хто такi гэты БР?
це такий програмний комплекс "Босс-Референт", що був розроблений компанією "Ай-Ти", а пізніше переданий у ведення декількома іншими компаніями, що породило велику кількість його варіацій )))
 
A

alik86

Вось яно што, зразумела... Дзякуй за аператыуны адказ. ;)
 
Мы в соцсетях:

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