Нужен совет

Тема в разделе "Lotus - Программирование", создана пользователем TAPAKAHATOP, 18 сен 2009.

  1. TAPAKAHATOP

    TAPAKAHATOP Active Member

    Регистрация:
    18 сен 2009
    Сообщения:
    29
    Симпатии:
    0
    Необходимо сделать такую фичу как:
    Пользователь заходит в документ, и после нажатия определенной кнопки на экране его данные (берутся из другой базы на сервере) подгружались в этот документ.
    Проблема у меня возникла именно по части поиска и взятия данных из другой базы.
    Пробовал по примерам из хелпа, но получилась некая нерабочая как.
    Посоветуйте как лучше решить эту ситуацию?
     
  2. RAJ

    RAJ Well-Known Member

    Регистрация:
    17 янв 2007
    Сообщения:
    440
    Симпатии:
    0
    есть @-функции: @DBColumn, @DBLookup для выгр*цензура*ия данных,
    в хелпе есть примеры.
    И не понятно, что у вас не работает, приведите ваш код хотя бы
     
  3. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.046
    Симпатии:
    18
    Скришитон
    приводи тут свой кусок кода и конкретно какая его часть не работает
    будем обьяснять по существу
     
  4. TAPAKAHATOP

    TAPAKAHATOP Active Member

    Регистрация:
    18 сен 2009
    Сообщения:
    29
    Симпатии:
    0
    Вот целиком... да да... от такой я чайник.
    Самое вероятное что накосячено в объявлениях и сетах...

    Код (Text):
    Sub Click(Source As Button)
    Dim uiwsp As New NotesUIWorkSpace  
    Dim uidoc As NotesUIDocument
    Dim session As New NotesSession
    Dim db As NotesDatabase
    Dim doc As NotesDocument

    Set db = session.CurrentDatabase
    Set doc= CurentDocument
    Set uidoc=uiwsp.CurrentDocument
    Set doc=uidoc.Document

    server=db.Server

    Dim sprav As New NotesDatabase( server, "nninf.nsf" )
    Dim col1 As NotesDocumentCollection
    Set col1= sprav.AllDocuments
    Set persdoc=col1.GetFirstDocument


    While persdoc.Col_LNA =doc.Cur_Lna
    Set persdoc=col1.GetNextDocument(persdoc)

    Wend
    doc.Per_Name=persdoc.Sotr_Name

    End Sub
     
  5. amigolinx

    amigolinx Гость

    так вроде ж ниче этим кодом и не подгребается с другой базы, максимум - в doc заносится значение поля Sotr_Name из последнего persdoc в коллекции col1. зачем в col1 перебираются все доки из другой базы? в этом цикле и читай в doc все что нужно взять из persdoc. а еще лучше - получить из doc какой-нить ключ и по нему забирать из другой базы совпадающие доки

    а чтоб не грешить на объявления и сеты, включай Option Declare - это мастхев в любом агенте
     
  6. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    неясно почему все доки из второй базы взяты? ведь есть поиск по базе, другие способы отбора необходимых документов.

    скорее всего ничего не работает потому что условие перебора документов не соответсвует верному, тут скорее всего надо было так:
    Код (Text):
    While not(persdoc.Col_LNA(0) = doc.Cur_Lna(0))
    тогда будет выполнен перебор доков пока не найдем нужный по ключу.
    последняя строка скорее всего не записывает значение поля (если не записывает), потому что первый документ в коллекции не имеет итема Sotr_Name.

    я бы предложил такие варианты решения:
    - поиск по базе notesDatabase.Search() с условием "Col_LNA = \"" & doc.Cur_Lna(0) & "\""
    - полнотекстовый поиск по базе notesDatabase.FTSearch() с условием "[Col_LNA] = \"" & doc.Cur_Lna(0) & "\""
    - полнотекстовый поиск по одному из представлений notesView.FTSearch() с условием "[Col_LNA] = \"" & doc.Cur_Lna(0) & "\""
    - поиск по подготовленному представлению notesView.GetDocumentByKey()
     
Загрузка...
Похожие Темы - Нужен совет
  1. JohnLemon
    Ответов:
    3
    Просмотров:
    726
  2. VirtyOz
    Ответов:
    2
    Просмотров:
    1.280
  3. hellsq
    Ответов:
    6
    Просмотров:
    1.473
  4. savl
    Ответов:
    9
    Просмотров:
    1.806
  5. macujin56
    Ответов:
    0
    Просмотров:
    1.474

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