исключить документ из коллекции

Kizarek86

Lotus team
20.07.2007
864
4
#1
С такой проблемкой столкнулся.Как исключить из коллекции документов текущий(документ с которым работают на данный момент)?
 

morpheus

скриптописец
07.08.2006
3 915
1
#2
DeleteDocument method
Call notesDocumentCollection.DeleteDocument( document )

не забудте перед этим это текущего дока ( который будет удаляться ) взять следующий
 

Kizarek86

Lotus team
20.07.2007
864
4
#3
<!--QuoteBegin-Morpheus+19:09:2007, 11:37 -->
<span class="vbquote">(Morpheus @ 19:09:2007, 11:37 )</span><!--QuoteEBegin-->Call notesDocumentCollection.DeleteDocument( document )
[snapback]78777" rel="nofollow" target="_blank[/snapback]​
[/quote]
Не понимаю как реализовать.
Создается некоторая коллекция документов:collection
Текущий документ:
Код:
	Dim workspaceST As New NotesUIWorkspace 
Set uidocST = workspaceST.CurrentDocument
Set docST = uidocST.Document
collection.DeleteDocumen(docST) - ошибочка)

<!--QuoteBegin-Morpheus+19:09:2007, 11:37 -->
<span class="vbquote">(Morpheus @ 19:09:2007, 11:37 )</span><!--QuoteEBegin-->не забудте перед этим это текущего дока ( который будет удаляться ) взять следующий
[snapback]78777" rel="nofollow" target="_blank[/snapback]​
[/quote]
А вот эту фразу софсем не понял
 

Omh

Lotus team
04.07.2007
2 210
1
#4
Для: kizarek
Ну, документ который ты взял чеоез ws не будет из коллекции, даже если он там присутсвует.
Если у тебя есть коллекция и тебе надо исключить документ, который открыт в ws, то решается перебором и сравниванием UNID'ов.

Насчёт второго пункта: имелось в виду следующее

Код:
Dim TmpDoc as NotesDocument

Set Doc = Dc.GetFirstDocument
While Not Doc Is Nothing
Set TmpDoc = Dc.GetNextDocument(Doc)
if Flag then Call Dc.DeleteDocument(Doc)
Set Doc = TmpDoc
Wend
P.S. Я эту конструкцию использую не особо часто, так что может присутсвовать косячок.
Откомпилив в голове, получил результат без ошибок.
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#5
Для: kizarek
Попробуй так:
Код:
Dim doc As NotesDocument
...
Set doc = collection.GetDocument(docST)
If Not (doc is Nothing) then Call collection.DeleteDocument(doc)
 

Kizarek86

Lotus team
20.07.2007
864
4
#6
Morpheus,Omh, спасибо. сделал немного проще, при обходе коллекции дополнительное условие, на проверку соответствия UNID'а текущему документу.
 

morpheus

скриптописец
07.08.2006
3 915
1
#7
Для: kizarek
НУ и зачем ?
У NotesDocument есть свойство IsUIDocOpen property
Read-only. Indicates whether a NotesDocument object (back-end document) is accessed through a NotesUIDocument object (front-end document).

Просто проверяете на True и все ( ведь любой документ из коллекции могут открыть и другие пользователи!
 

Kizarek86

Lotus team
20.07.2007
864
4
#8
Morpheus ну кто же знал что так можно, реализуем так как знаем) Спасибо, шас так и сделаю)