• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

Вопрос по выполнении действия

  • Автор темы Mazimaz00
  • Дата начала
M

Mazimaz00

Добрый день уважаемые программисты Lotus.
Помогите создать Script (кнопку в форме):
В базе карточек нужно при нажатии на кнопку найти карточку из другой базы и перенести некоторые поля (чтоб заново не набирать)
Искать по ключу(поле числовое) в другой базе, если найдёт это значение - прикрепить соответствующие поля из этой формы
Dim session As New NotesSession
Dim ws As New NotesUIWorkspace
Dim db As NotesDatabase 'База даних (текущая база)
Dim MessagesDB As NotesDatabase ''База данных (другая)

Dim viewSprava As NotesView 'первая вью
Dim viewDoc As NotesView 'вторая вью
............????
 
A

allex

Dim MessagesDB As New NotesDatabase(server,dbname)
Set viewSprava = MessagesDB.GetView (view_name )
Set viewDoc = viewSprava.GetDocumentByKey (key )
 
M

Mazimaz00

Dim MessagesDB As New NotesDatabase(server,dbname)
Set viewSprava = MessagesDB.GetView (view_name )
Set viewDoc = viewSprava.GetDocumentByKey (key )


А потом какое мое действие (Я просто начинающий нюбик ":(")

Мне нужно залесть в другую базку пройтись по вьюхе, если найдёт значение, то взять и перенести в форму, там где кнопка, последующие значения из вьюхи :)
 
A

alik86

Код:
If Not viewDoc Is Nothing Then 
call CurrentDoc.ReplaceItemValue("itemname", viewDoc.itemname)
End If
 
N

nvyush

Код:
dim doc as NotesDocument 'открытый документ
set doc = ws.CurrentDocument.Document 
call doc.ReplaceItemValue("имя поля", viewDoc.GetItemValue("имя поля"))
...
 
M

Mazimaz00

База текущая "ju.nsf"
Представление текущее ""(DIRT)"" вид ! KOD ! поле1 ! поле2! поле3! поле4! -Поля, которые нужно заполнить(взять из базы) и перенести в форму "Document"
Форма текущая "Document"
Поле (KOD) ключ

База в которой ищем "pasp.nsf"
Представление в базе "(DIR)" вид ! INN ! поле11 ! поле22! поле33! поле44!
Поле в представлении(первый столбик) "INN" - где ищем по ключу «KOD»
Что получилось:
Sub Click(Source As Button)
Dim session As New NotesSession
Dim ws As New NotesUIWorkspace
Dim db As NotesDatabase 'База даних (текущая база) - текущая база "ju.nsf"
Dim MessagesDB As NotesDatabase ''База данных (другая) - база где ищем и берём все знач. "pasp.nsf"

Dim viewSprava As NotesView 'первая вью - это вью текущей базы? (вью тек. базы "(DIRT)")
Dim viewDoc As NotesView 'вторая вью - это вью где ищем из другой базы? "(DIR)"
Dim MessagesDB As New NotesDatabase(server,dbname) ""сервер",pasp.nsf" - это сервер где лежит база из которой ищем.

Set view(?) = MessagesDB.GetView (?) -Sprava- это
Set view(?) = viewSprava.GetDocumentByKey (?)
If Not viewDoc Is Nothing Then

call CurrentDoc.ReplaceItemValue("itemname", viewDoc.itemname) - ? что сдесь написать
End If
dim doc as NotesDocument 'открытый документ
set doc = ws.CurrentDocument.Document
call doc.ReplaceItemValue("имя поля", viewDoc.GetItemValue("имя поля")) Это и есть действие переноса с вью другой базы в форму?
End Sub

Плиз, выручайте - ЧТО не так?
Тяжело в учении – легко в бою 
Напишите полностью, прошу Вас.
 
N

nvyush

Mazimaz00
Примерно так:
Код:
Sub Click(Source As Button)
Dim session As New NotesSession
Dim ws As New NotesUIWorkspace
Dim db As NotesDatabase 'База даних (текущая база) - текущая база "ju.nsf"
Dim MessagesDB As NotesDatabase ''База данных (другая) - база где ищем и берём все знач. "pasp.nsf"

Dim viewSprava As NotesView 'первая вью - это вью текущей базы? (вью тек. базы "(DIRT)")
Dim viewDoc As NotesView 'вторая вью - это вью где ищем из другой базы? "(DIR)"
Dim sourceDoc As NotesDocument 'документ в другой базе
'Dim MessagesDB As New NotesDatabase(server,dbname) ""сервер",pasp.nsf" - это сервер где лежит база из которой ищем.
Set MessagesDB = session.GetDatabase("servername", "pasp.nsf", False)	
Set viewDoc = MessagesDB.GetView("(Dir)") '-Sprava- это 
Set sourceDoc = viewDoc.GetDocumentByKey("искомый ИНН")
Dim doc As NotesDocument 'открытый документ
Set doc = ws.CurrentDocument.Document 
If Not sourceDoc Is Nothing Then 		
Call doc.ReplaceItemValue("имя поля в целевом документе", sourceDoc.GetItemValue("имя поля в документе - источнике")) ' Это и есть действие переноса с вью другой базы в форму?
End If
End Sub
 
A

alik86

Dim viewDoc As NotesDocument 'viewDoc это документ взятый из вида viewSprava!!!
Во всяком случае изначально я и allex имели ввиду именно это... :trash:
Зачем и что это за текуще Представление "(DIRT)", если кнопка висит на форме.
Или я что-то не так понял? ;)
 
A

amigolinx

Или я что-то не так понял?
все прально, по крайней мере я третий кто тоже так понял :trash:
и добавлю исчо что вот эта база в данном контексте тоже не нужна Dim db As NotesDatabase 'База даних (текущая база) - текущая база "ju.nsf"
 
Мы в соцсетях:

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