• 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

Нужен совет

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

TAPAKAHATOP

Необходимо сделать такую фичу как:
Пользователь заходит в документ, и после нажатия определенной кнопки на экране его данные (берутся из другой базы на сервере) подгружались в этот документ.
Проблема у меня возникла именно по части поиска и взятия данных из другой базы.
Пробовал по примерам из хелпа, но получилась некая нерабочая как.
Посоветуйте как лучше решить эту ситуацию?
 
есть @-функции: @DBColumn, @DBLookup для выгр*цензура*ия данных,
в хелпе есть примеры.
И не понятно, что у вас не работает, приведите ваш код хотя бы
 
Скришитон
приводи тут свой кусок кода и конкретно какая его часть не работает
будем обьяснять по существу
 
Вот целиком... да да... от такой я чайник.
Самое вероятное что накосячено в объявлениях и сетах...

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

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

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()
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab