Нужен совет

  • Автор темы TAPAKAHATOP
  • Дата начала
T

TAPAKAHATOP

Необходимо сделать такую фичу как:
Пользователь заходит в документ, и после нажатия определенной кнопки на экране его данные (берутся из другой базы на сервере) подгружались в этот документ.
Проблема у меня возникла именно по части поиска и взятия данных из другой базы.
Пробовал по примерам из хелпа, но получилась некая нерабочая как.
Посоветуйте как лучше решить эту ситуацию?
 
R

RAJ

есть @-функции: @DBColumn, @DBLookup для выгр*цензура*ия данных,
в хелпе есть примеры.
И не понятно, что у вас не работает, приведите ваш код хотя бы
 

ToxaRat

Чёрный маг
Green Team
06.11.2007
3 332
42
BIT
0
Скришитон
приводи тут свой кусок кода и конкретно какая его часть не работает
будем обьяснять по существу
 
T

TAPAKAHATOP

Вот целиком... да да... от такой я чайник.
Самое вероятное что накосячено в объявлениях и сетах...

Код:
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
 
A

amigolinx

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

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

Akupaka

неясно почему все доки из второй базы взяты? ведь есть поиск по базе, другие способы отбора необходимых документов.

While persdoc.Col_LNA = doc.Cur_Lna
скорее всего ничего не работает потому что условие перебора документов не соответсвует верному, тут скорее всего надо было так:
Код:
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()
 
Мы в соцсетях:

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