запрет на удаление документов с конкретного представления

Тема в разделе "Lotus - Программирование", создана пользователем lionk, 22 фев 2008.

  1. lionk

    lionk Well-Known Member

    Регистрация:
    5 апр 2007
    Сообщения:
    308
    Симпатии:
    3
    ктото знает как запертить удалять доки из определёных представлений,
    я так понимаю надо обрабатывать событие Querydocumentdelete, но никак не могу найти где выбраны документы направленные на удаление.

    может ктото уже подобное пытался реализовать?
     
  2. morpheus

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

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    Unprocessedocuments
     
  3. lionk

    lionk Well-Known Member

    Регистрация:
    5 апр 2007
    Сообщения:
    308
    Симпатии:
    3
    Sub Querydocumentdelete(Source As Notesuidatabase, Continue As Variant)
    Dim ddoccol As NotesDocumentCollection
    Dim ddoc As NotesDocument

    Set ddoccol=Source.Documents
    Set ddoc=ddoccol.GetFirstDocument
    Print ddoc.ParentView.Name
    Print ddoc.ParentView.Aliases(0)
    End Sub


    свойство ddoc.ParentView - пустое

    свойство Source.Database.Unprosseddocuments - содержит 0 документов незвисимо от количества удаляемых документов

    может ещё чтото посоветуете?
     
  4. Гость

    Лучше бери NotesUIWorkspace.CurrentView.View, это точно сработает.
     
  5. Kee_Keekkenen

    Kee_Keekkenen Well-Known Member

    Регистрация:
    5 сен 2006
    Сообщения:
    616
    Симпатии:
    4
    Для: Программер согласен..
     
  6. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Для: lionk
    А для чего такая проверка?
    В целях защиты или что-то?
     
  7. fedotxxl

    fedotxxl Well-Known Member

    Регистрация:
    9 ноя 2005
    Сообщения:
    614
    Симпатии:
    0
    Может NotesUIWorkspace.CurrentView.Documents?
     
  8. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Коллекцию удаляемых документов надо брать через db.UnprocessedDocuments без вопросов.
    Просто добавить проверку вида

    Код (Text):
    Const PROTECTED_VIEW_NAME = "View"

    Dim ws as New NotesUIWorkspace
    Dim UIView as NotesUIView
    Set UIView = ws.CurrentView
    if Not UIView is Nothing then
    dim View as NotesView
    Set View = UIView.View
    if View.Name = PROTECTED_VIEW_NAME then
    Continue = False
    Exit Sub
    end if
    End if
    Там можно/нужно проверять на алиасы, но это я так, псевдокод типа накидал B)


    Для: lionk
    А ты там случаем не через script удаляешь?
    Типа doc.Remove(True)?
     
  9. lionk

    lionk Well-Known Member

    Регистрация:
    5 апр 2007
    Сообщения:
    308
    Симпатии:
    3
    Через NotesUIWorkspace можно получить имя вида, потестил вроде работает нормально, чёто я совсем забыл что можно юзать NotesUIWorkspace в Database


    Для: Omh
    код нормальный токо исправь, Dim ws as New NotesUIWorkspace.

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

    Но база мною токо поддерживается и во всю логику вникать лень, то тупой заперт кнопочного удаления из определённых представлений решит мою проблему.

    всем спасибо, тема закрыта.
     
Загрузка...

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