Дочерние документы

Тема в разделе "Lotus - Программирование", создана пользователем ruster83, 1 апр 2009.

  1. ruster83

    ruster83 Гость

    Помогите кто может...Необходимо в коллекцию добавить все ответные документы,включаю ответные документы ответных документов....Ну т.е. у ответных документов есть свои ответные документы и их всех надо добавить в коллекцию...
     
  2. allex

    allex Гость

    В свойствах view поставить галочку - отобразвть ответные док-ты
    А в отборе прописать select form = mainform | form = resp_1_form | form = resp_2_form
     
  3. ruster83

    ruster83 Гость

    Нет мне надо в коде в коллекцию закинуть все ответные документы...
     
  4. medin84

    medin84 Well-Known Member

    Регистрация:
    27 июн 2007
    Сообщения:
    106
    Симпатии:
    0
    делай первую колонку категорией ставь unid основного или еще что
    под категорией показывай ответные
    и бери по Set notesDocumentCollection = notesView.GetAllDocumentsByKey( keyArray [, exactMatch% ] )
     
  5. Kizarek86

    Kizarek86 Lotus team
    Lotus team

    Регистрация:
    20 июл 2007
    Сообщения:
    857
    Симпатии:
    5
    Добавлять документы можно по циклу, т.е. сначала ищешь всех родителей, потом новый поиск его ответов, потом поиск ответов ответа... и т.д., правда будет долго.
    medin84 его предложение будет куда быстрее)
     
  6. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    Код (Text):
    Sub GetRespCol(ACol As NotesDocumentCollection, ADoc As NotesDocument)
    Dim resp As NotesDocumentCollection
    Dim respdoc As NotesDocument
    Dim firstTime As Boolean

    Set resp = ADoc.Responses
    If ACol Is Nothing Then
    Set ACol = ADoc.Responses
    Call ACol.AddDocument(ADoc)
    firstTime = True
    End If
    Set respdoc = resp.getFirstDocument
    While Not(respdoc Is Nothing)
    Call GetRespCol(ACol, respdoc)
    If Not(firstTime) Then
    Call ACol.AddDocument(respdoc)
    End If

    Set respdoc = resp.GetNextDocument(respdoc)
    Wend
    End Sub

    Sub Initialize
    Dim s As New NotesSession
    Dim doc As NotesDocument
    Dim resp As NotesDocumentCollection

    Set doc = s.CurrentDatabase.UnprocessedDocuments.GetFirstDocument
    Call GetRespCol(resp, doc)

    Print "START"
    Set doc = resp.GetFirstDocument
    While Not(doc Is Nothing)
    Print doc.UniversalID

    Set doc = resp.GetNextDocument(doc)
    Wend
    End Sub
     
  7. ruster83

    ruster83 Гость

    Akupaka...большое спасибо именно то что нужно...Все заработало...Всем огромное спасибо за помощь....
     
Загрузка...

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