Copytodatabase

Тема в разделе "Lotus - Программирование", создана пользователем makaset, 7 июн 2013.

  1. makaset

    makaset Well-Known Member

    Регистрация:
    14 мар 2007
    Сообщения:
    126
    Симпатии:
    0
    всем привет! кто подскажет откопал такой код
    а он коприует все документы из базы. а мне надо что бы копировался те документы который я выделил во вюхе. и после коприования удалил из текущей базы


    Dim nArchDb As New NotesDatabase("arch","arch.nsf")
    Dim nSs As New NotesSession
    Dim nDb As NotesDatabase
    Dim nDoc As NotesDocument
    Dim nDocColl As NotesDocumentCollection
    Set nDb = nSs.CurrentDatabase
    Formula1$={Form="RabDoc"| @AllChildren }'условия отбора
    Set nDocColl = nDb.Search(Formula1$,Nothing,0)
    Set nDoc = nDocColl.GetFirstDocument
    While Not(nDoc Is Nothing)
    Call nDoc.CopyToDatabase(nArchDb)
    Set nDoc = nDocColl.GetNextDocument(nDoc)
    Wend
     
  2. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.075
    Симпатии:
    300
    открываем хэлп...
    сморим NotesUIView class
     
  3. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.052
    Симпатии:
    146
    В свойствах агента выставить "All Selected Documents", заменить способ получения коллекции в коде
    Код (LotusScript):
    Dim nArchDb As New NotesDatabase("arch","arch.nsf")
    Dim nSs As New NotesSession
    Dim nDb As NotesDatabase
    Dim nDoc As NotesDocument
    Dim nxtDoc as NotesDocument
    Dim nDocColl As NotesDocumentCollection
    Set nDb = nSs.CurrentDatabase
    Set nDocColl = nDb.UnprocessedDocuments
    Set nDoc = nDocColl.GetFirstDocument
    While Not (nDoc Is Nothing)
    Set nxtDoc = nDocColl.GetNextDocument(nDoc)
    Call nDoc.CopyToDatabase(nArchDb)
    Call nDoc.remove(True) ' аккуратнее с этим
    Set nDoc = nxtDoc
    Wend
     
  4. makaset

    makaset Well-Known Member

    Регистрация:
    14 мар 2007
    Сообщения:
    126
    Симпатии:
    0
    он при копирровании терят дочки
     
  5. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.052
    Симпатии:
    146
    Логично)
    Потому что копируются только выделенные документы.
    Для копирования всех ответных нужен перебор ответных.
    Получить ответные можно через doc.Responces, но это ответные первого уровня, если у ответных есть ответные, то надо делать такой же перебор для каждого ответного.
     
  6. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.075
    Симпатии:
    300
    отметка отработанных доков потянет за собой UI (установка процессед - работает долго)
    т.о. придем к NotesUIView...
    так зачем ваще юзать анпроцессед? :)
    второй шаг - это получение чайлдов, ту опять - не нужно Responces, ведь есть NotesViewNavigator и notesView.CreateViewNavFromDescendants
     
  7. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.052
    Симпатии:
    146
    lmike
    А должна ли архивация(судя по задаче это она) идти вручную?
    По мне так нужен шедульный агент по расписанию, а вручную документы только метить к архивированию.
    А вот потом бежать агентом по спец вьюхе.
    И не удалять в процессе архивирования документы! Только метить к удалению, удалять потом, через сутки. Мало ли сбой какой...
     
  8. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.075
    Симпатии:
    300
    навигатор не помешает в любом раскладе
    если метится интерактивно - то и юивью нужен
     
Загрузка...
Похожие Темы - Copytodatabase
  1. Cleric-Lviv
    Ответов:
    13
    Просмотров:
    4.793
  2. Andre
    Ответов:
    6
    Просмотров:
    3.345

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