Нужен совет

TAPAKAHATOP

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

RAJ

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

ToxaRat

Чёрный маг
Lotus team
06.11.2007
3 231
17
#3
Скришитон
приводи тут свой кусок кода и конкретно какая его часть не работает
будем обьяснять по существу
 

TAPAKAHATOP

Active member
18.09.2009
29
0
#4
Вот целиком... да да... от такой я чайник.
Самое вероятное что накосячено в объявлениях и сетах...

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

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

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

Akupaka

А че я?.. О.о
04.10.2007
3 360
1
#6
неясно почему все доки из второй базы взяты? ведь есть поиск по базе, другие способы отбора необходимых документов.

скорее всего ничего не работает потому что условие перебора документов не соответсвует верному, тут скорее всего надо было так:
Код:
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()