Заморочка с коллекцией документов.

  • Автор темы LIGHT
  • Дата начала
L

LIGHT

Во вьюшке прикрутил кнопку, по которой обрабатываю отмеченные документы в коллекции. Все работает но… вот что-то не получается галочки скинуть с отмеченных документов после отработки функции ViewRefresh что-то не помогает, может, подскажите выход из затыка.

Код:
Sub Click(Source As Button)

Dim s As NotesSession
Dim db As NotesDatabase
Dim uidoc As NotesUIDocument
Dim dc As NotesDocumentCollection
Dim doc As NotesDocument
Dim w As NotesUIWorkspace
Dim createDate As Variant
Dim i As Variant
Dim j As Variant

Set s = New NotesSession
Set db = s.CurrentDatabase
Set dc = db.UnprocessedDocuments
Set doc = dc.GetLastDocument
Set w = New NotesUIWorkspace

Dim ws As New NotesUIWorkspace

Dim askme As Variant
Dim destination As String

Dim valyes(4) As Variant

valyes(0) = "Договор"
valyes(1) = "Дополнительное соглашение"
valyes(2) = "Спецификация"
valyes(3) = "Прочая договорная документация"
valyes(4) = ""

askme = ws.Prompt (PROMPT_OKCANCELCOMBO, _
"Назначить категорию отмеченных документов?", _
"Выберите одно из предложенных значений.", _
valyes(0), valyes)

Do Until doc Is Nothing

Call doc.ReplaceItemValue("DocType", askme)	
Call doc.save(True,True,True)	
Set doc = dc.GetPrevDocument (doc) 
Loop

Call w.ViewRefresh
On Error Resume Next

Set UIdoc=w.CurrentDocument
On Error Goto 0

If Not UIdoc Is Nothing Then
If Not UIdoc.InPreviewPane Then Call UIdoc.Close
End If

End Sub

То есть получается так, отметил я к примеру 20 доков, запустил процедуру обработки, и хочу обработать еще 30. Отмечаю их... но перед этим приходится снять галочки с ранее отмеченых. т.к. они сохраняются.
 
R

Ronchik

1. вместо вот этого куска
Код:
 Do Until doc Is Nothing

Call doc.ReplaceItemValue("DocType", askme)	
Call doc.save(True,True,True)	
Set doc = dc.GetPrevDocument (doc) 
Loop
можно использовать
Код:
Call notesDocumentCollection.StampAll( itemname, value )
2.
Код:
Call notesUIView.DeselectAll
 
M

morpheus

Для: LIGHT
Дык, в хэлпе ж написано
Replaces the value of a specified name in all documents in a collection.

и обратите внимание, что
If the item does not exist, it is created. The item values are immediately written to the back-end documents. You do not have to use the Save method of NotesDocument after StampAll. However, any documents modified by your script must be saved before calling StampAl
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!