код прост до нельзя
Код:
Dim session As New NotesSession
Dim db As NotesDatabase
Dim view As NotesView
Dim doc As NotesDocument
Dim parentDoc As NotesDocument
Dim nextParentDoc As NotesDocument
Dim workspace As New NotesUIWorkspace
Dim collection As NotesDocumentCollection
Set db = session.CurrentDatabase
Set collection =db.UnprocessedDocuments
Set parentDoc = collection.GetFirstDocument()
While Not(parentDoc Is Nothing)
Set view = db.GetView(parentDoc.NoteID)
If Not view Is Nothing Then
Set doc = view.GetFirstDocument()
While Not(doc Is Nothing)
Call doc.Remove(True)
Set doc = view.GetFirstDocument()
Wend
Call view.Remove
End If
Set nextParentDoc = collection.GetNextDocument(parentDoc)
Call parentDoc.Remove( True )
Set parentDoc = nextParentDoc
Wend
Call workspace.ViewRefresh
Вставил в агента все норм сработало.
Глюк был в следующем
Есть 3 документа. Выделяю 2 дока нажимаю на кнопку. - В дебаге кол-во доков в колекции = 2. Удаляет без проблем.
Курсор стоит на оставшемся.
жму кнопку вылетает ошибка, в дебаге пишется что в колекции 2! документа. То есть кол-во ранее удаленых доков.
Выделяю последний документ(пробелом чтоб галочка появилась).
Жму на кнопку - вылетает ошибка, в дебаге пишется что в колекции 3! документа.
Это по меньшей мере странное поведение, я ожидал что функция Remove сделает документ "обработанным".
И еще сразу хотел бы спросить совета.
Задача состоит в том чтобы к документу относились другие документы(как бы чилдрены). На главной форме есть кнопочка и по нажатию на нее чтоб появлялась view с возможностью добавления и удаления чилдренов.
Задачу я решил через фолдеры, и имя фолдера есть noteid парентовского документа.
Сейчас практически все работает(кнопка открывающая view срабатывает со второго раза, если фолдер еще не создан).
Эту проблему я так и не решил, но мне интересно есть ли более изящное решение нежели плодить фолдеры для каждого документа-парента?
Omh
че так? )))
не думайте что я считал вас телепатами))), просто посчитал что если я написал так же как в DomDoc созданном уважаемыми программерами лотуса, то код собсно не требовался. В общем то так и оказалось, по какой то причине он работает ТОЛЬКО в агенте. Это меня оч удивляет