M
morpheus
Вопрос
как автоматом включить удаление всех подчиненных документов (response) при удалении document?
Ответ
Автор
как автоматом включить удаление всех подчиненных документов (response) при удалении document?
Ответ
Код:
Set coll = db.UnprocessedDocuments
If coll.Count>0 Then
If Msgbox("Вы действительно хотите удалить "+Cstr(coll.Count)+" документов?",36,"") = 6 Then
Set doc = coll.GetFirstDocument
While Not doc Is Nothing
Set TmpDoc = coll.GetNextDocument(doc)
v = doc.Created
If v <> 0 Then
doc.Author = sess.USERNAME
Call sess.UpdateProcessedDoc( doc )
Call doc.Save(True, True)
' проверяем, нет ли у дока респонсов
Set tmpcoll = doc.Responses
If tmpcoll.Count > 0 Then
If Not Msgbox("У выбранного документа есть респонсы"+Chr(10)+"Вы хотите удалить и их?",36,"") = 6 Then
Msgbox "Удаление респонсов отменено"
Else
Call DeleteResponses (db, doc)
End If
End If
Call doc.Lock
Call doc.Remove(True)
End If
Set doc = TmpDoc
Wend
Sub DeleteResponses (db As NotesDatabase, doc As NotesDocument)
Dim ws As New NotesUIWorkspace
Dim sess As New NotesSession
Dim coll As NotesDocumentCollection
Dim resp As NotesDocument
Dim TmpResp As NotesDocument
Dim v
Set coll = doc.Responses
Set resp = coll.GetFirstDocument
While Not resp Is Nothing
Set TmpResp = coll.GetNextDocument(resp)
v = resp.Created
If v <> 0 Then
resp.Author = sess.USERNAME
Call sess.UpdateProcessedDoc( resp )
Call resp.Save(True, True)
Call DeleteResponses (db, resp)
Call resp.Lock
Call resp.Remove(True)
End If
Set resp = TmpResp
Wend
End Sub
Автор
Ссылка скрыта от гостей