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

Тема в разделе "Lotus - Программирование", создана пользователем NeviDimka, 17 июл 2006.

Статус темы:
Закрыта.
  1. NeviDimka

    NeviDimka Гость

    Приветствую, уважаемые. Помогите начинающему с первой проблемой
    Есть две формы, в одном есть поле 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)
    Очень рассчитываю на помощь знающих людей.
     
  2. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Колонка отсортирована в представлении ?

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

    Axel Гость

    <!--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
     
  4. NeviDimka

    NeviDimka Гость

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

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