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

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

Mazimaz00

#1
Добрый день уважаемые программисты 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

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

Mazimaz00

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

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

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

alik86

Lotus team
20.11.2008
465
1
#4
Код:
If Not viewDoc Is Nothing Then 
call CurrentDoc.ReplaceItemValue("itemname", viewDoc.itemname)
End If
 

nvyush

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

Mazimaz00

#7
База текущая "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

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

nvyush

Lotus team
22.04.2009
2 317
0
#8
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
 

alik86

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

amigolinx

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