Удалить ответы при удалении главного док-та

Тема в разделе "Oбщий функционал", создана пользователем morpheus, 25 дек 2006.

  1. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    Вопрос
    как автоматом включить удаление всех подчиненных документов (response) при удалении document?

    Ответ
    Код (Text):
    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
    Автор
    ngg
     
Загрузка...

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