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

Тема в разделе "Lotus - Программирование", создана пользователем Mazimaz00, 22 мар 2010.

  1. Mazimaz00

    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 'вторая вью
    ............????
     
  2. allex

    allex Гость

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

    Mazimaz00 Гость


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

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

    alik86 Lotus team
    Lotus team

    Регистрация:
    20 ноя 2008
    Сообщения:
    465
    Симпатии:
    0
    Код (Text):
    If Not viewDoc Is Nothing Then
    call CurrentDoc.ReplaceItemValue("itemname", viewDoc.itemname)
    End If
     
  5. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Код (LotusScript):
    dim doc as NotesDocument 'открытый документ
    set doc = ws.CurrentDocument.Document
    call doc.ReplaceItemValue("имя поля", viewDoc.GetItemValue("имя поля"))
    ...
     
  6. Mazimaz00

    Mazimaz00 Гость


    Большое спасибо :)
     
  7. Mazimaz00

    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

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

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Mazimaz00
    Примерно так:
    Код (LotusScript):
    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
     
  9. Mazimaz00

    Mazimaz00 Гость

    1000 Спасибо %)

    Тестирую :trash:
     
  10. alik86

    alik86 Lotus team
    Lotus team

    Регистрация:
    20 ноя 2008
    Сообщения:
    465
    Симпатии:
    0
    Dim viewDoc As NotesDocument 'viewDoc это документ взятый из вида viewSprava!!!
    Во всяком случае изначально я и allex имели ввиду именно это... :trash:
    Зачем и что это за текуще Представление "(DIRT)", если кнопка висит на форме.
    Или я что-то не так понял? ;)
     
  11. amigolinx

    amigolinx Гость

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

    alik86 Lotus team
    Lotus team

    Регистрация:
    20 ноя 2008
    Сообщения:
    465
    Симпатии:
    0
    офтоп: Ура! Нас уже много! :trash:
     
Загрузка...
Похожие Темы - Вопрос по выполнении
  1. ApplePen
    Ответов:
    0
    Просмотров:
    58
  2. gURaBA_N
    Ответов:
    3
    Просмотров:
    91
  3. kartaman
    Ответов:
    0
    Просмотров:
    127
  4. Peter
    Ответов:
    4
    Просмотров:
    519
  5. di0d_
    Ответов:
    1
    Просмотров:
    436

Поделиться этой страницей