Доступ к полям в Lotusscript/javascript

  • Автор темы NeviDimka
  • Дата начала
Статус
Закрыто для дальнейших ответов.
N

NeviDimka

#1
Приветствую, уважаемые. Помогите начинающему с первой проблемой
Есть две формы, в одном есть поле Type, в другом поле Counter, для события onChange поля Type я пишу слудующий код:

Sub Onchange(Source As Field)
Set notesSession = New NotesSession
Dim nDB As NotesDatabase
Set nDB = notesSession.CurrentDatabase()
Dim nv_types As NotesView
Set nv_types = nDB.getView("types")
Dim ndoc_btype As NotesDocument
Set ndoc_btype = nv_types.getDocumentByKey("XYZ",False)
Dim ni_count As Variant
Set ni_count = ndoc_btype.GetItemValue("Counter")
End Sub

где types - это представление показывающее документы со вторым полем, а ключ XYZ, по которому ищется документ - реально существующий, но после запуска клиента Lotus Notes, открытии базы, и изменении поля Type - выдается ошибка: "Object Variable not set"!!! в отладчике видно, что создается сессия, БД и вид, но не создается документ, и соответственно поле от него:)( (мне нужно в итогшеполучить значение поля Counter)
Очень рассчитываю на помощь знающих людей.
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#2
Колонка отсортирована в представлении ?

Кстати, через @DbLookup будет быстрее.
 
A

Axel

#3
<!--QuoteBegin-NeviDimka+17:07:2006, 10:07 -->
<span class="vbquote">(NeviDimka @ 17:07:2006, 10:07 )</span><!--QuoteEBegin-->выдается ошибка: "Object Variable not set"!!!
[snapback]40246" rel="nofollow" target="_blank[/snapback]​
[/quote]

Это из-за того что
Set ndoc_btype = nv_types.getDocumentByKey("XYZ",False)
при ненахождении документа присваивает ndoc_btype = Nothing

соответственно здесь и появляется ошибка, так как пытается взять поле у Nothing.
Set ni_count = ndoc_btype.GetItemValue("Counter")

Надо обрамить вот так
If not (ndoc_btype is nothing) then
Set ni_count = ndoc_btype.GetItemValue("Counter")
end if
 
N

NeviDimka

#4
2Medevic: да трабла была как раз в этом :) пасиб
2Axel: тоже пасиб, полезная информация :)
 
Статус
Закрыто для дальнейших ответов.