• 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

При сохранении документа выдается : "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

Я сам в Лотусе новичок, код скопирован из книги в мое приложение.
В чем ошибка?
 
Хорошо бы знать, где конкретно ошибка вылетает. Предварительно следует проверить, что вьюха (RequestNo) создана и имеет именно такое название, а также проверить на вшивость функцию CheckFieldValues.
 
Т.е. вьюха должна быть точно RequestNo?
 
По всей видимости ошибка выскакивает ввиду того, что у тебя еще нет объекта doc, т.е. у тебя новый документ Notesuidocument, который еще не был сохранен, следовательно Set doc = uidoc.Document ничего не возвращает и на If doc.RequestNo(0) = "" Then Lotus ругает тебя...
 
По всей видимости ошибка выскакивает ввиду того, что у тебя еще нет объекта 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
 
Опля!!! Точно! Всё что написал выше, всё ж зря... Не углядел :(
Выбачайце... :)
 
А што такое цi хто такi гэты БР?
це такий програмний комплекс "Босс-Референт", що був розроблений компанією "Ай-Ти", а пізніше переданий у ведення декількома іншими компаніями, що породило велику кількість його варіацій )))
 
Вось яно што, зразумела... Дзякуй за аператыуны адказ. ;)
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab