1. Наш канал codeby в telegram. Пишем об информационной безопасности, методах защиты информации, о программировании. Не пропускай новости с кодебай, будь в тренде ! Подробнее ...

    Скрыть объявление

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

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

  1. morpheus

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

    Репутация:
    0
    Регистрация:
    7 авг 2006
    Сообщения:
    3.915
    Симпатии:
    1
    Вопрос
    как автоматом включить удаление всех подчиненных документов (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
    Автор
    ngg
     
Загрузка...

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