Проверка поля при сохранении

Тема в разделе "Lotus - Программирование", создана пользователем Ruska132, 10 ноя 2015.

  1. Ruska132

    Ruska132 Well-Known Member

    Регистрация:
    21 янв 2015
    Сообщения:
    64
    Симпатии:
    0
    Добрый день. Подскажите ПЖ новичку.
    При создании ответного документа на форму, поле ответного заполняется автоматически. необходимо чтоб при сохранении производилась проверка: заполненое поле с UserName.
    пример:
    Документ1 - поле адресат (Иванов И.И.) Пользователь Сидоров создает резолюцию поле автор прописывается автоматически т.е. Иванов И.И. необходимо чтоб при сохранении документа резолюция была проверка (сравнить Иванов с Сидоров ), если лож то выводить сообщение.

    если я правильно понимаю это дело необходимо организовать в событии Querysave.
    подскажите ПЖ.
     
  2. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.051
    Симпатии:
    146
    проверка для чего нужна?
    Сама првоерка не задача, это один из шагов.
    Задача сама для чего? Чтобы автор не был получателем?
     
  3. Ruska132

    Ruska132 Well-Known Member

    Регистрация:
    21 янв 2015
    Сообщения:
    64
    Симпатии:
    0
    суть в том что участились случаи что от имени другого создают ответные документы.
     
  4. Kizarek86

    Kizarek86 Lotus team
    Lotus team

    Регистрация:
    20 июл 2007
    Сообщения:
    857
    Симпатии:
    5
    Правильно понимаете, событие делать на Querysave.
    Определить текущего пользователя курите класс NotesSession (конктерно UserName),
    сравнивайте с указанным значением в поле, курите класс NotesDocument (конкретно GetItemValue).
    если нужно остановить сохранение используйте Continue = false
     
    3 пользователям это понравилось.
  5. Ruska132

    Ruska132 Well-Known Member

    Регистрация:
    21 янв 2015
    Сообщения:
    64
    Симпатии:
    0

    да, если можно то ПЖ на примере.
     
  6. garrick

    garrick Lotus team
    Lotus team

    Регистрация:
    26 окт 2009
    Сообщения:
    770
    Симпатии:
    50
    Решение в корне не верное, не проверять надо что именно тот пользователь создал ответный документ, а сделать так, чтобы не у того пользователя не было возможности это сделать. Поля Authors/Readers, сокрытие кнопок "Создать" (или как там они у вас называются) и т.п.
     
  7. Kizarek86

    Kizarek86 Lotus team
    Lotus team

    Регистрация:
    20 июл 2007
    Сообщения:
    857
    Симпатии:
    5
    Код (LotusScript):
     If Source.Document.ParentDatabase.Parent.UserName <> Source.Document.GetItemValue("имя поля в котором юзверь")(0) Then
    Messagebox "Кто то хитрит!", 16, "не надо так"
    Continue = False
    End If
    [DOUBLEPOST=1447145284,1447145198][/DOUBLEPOST]А вообще выше пишут правильные вещи, если пользователь не должен создавать документы по чужим - то блокировать нужно до создания, а не при сохранении.
     
  8. Ruska132

    Ruska132 Well-Known Member

    Регистрация:
    21 янв 2015
    Сообщения:
    64
    Симпатии:
    0
    Можно закрыть возможность создания, но есть нюансы, если замещающие сотрудники и им должна быть доступна кнопка.
     
  9. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.051
    Симпатии:
    146
    Коллеги, в ошибка в авторе ответа, Иванов создает, а прописывается Сидоров, @Ruska132 так и есть?
    Это наследование полей скорее всего, форма ответа - response, там наследование полей от родителя.
    Поле, которое содержит имя автора наследуется, а должно изменяться.
    Надо найти поле, сделать его вычисляемым и проставить туда формулу @userName, если оно лотусовое имя содержит.
    А если ФИО из справочника сотрудников, то надо смотреть йункцию формирования ответа и менять этот момент уже там.
     
  10. Ruska132

    Ruska132 Well-Known Member

    Регистрация:
    21 янв 2015
    Сообщения:
    64
    Симпатии:
    0
    Функция формирования ответа скрыта.
    есть поле где содержатся данные автора вида (CN=////////;CN=////) вот и хотелось бы проверить в этом списке текущего пользователя.
     
  11. garrick

    garrick Lotus team
    Lotus team

    Регистрация:
    26 окт 2009
    Сообщения:
    770
    Симпатии:
    50
    Что значит "скрыта"? У вас база с закрытым дизайном? Как тогда вы собрались в ней что-то менять?
     
    3 пользователям это понравилось.
  12. alexas1

    alexas1 Lotus team
    Lotus team

    Регистрация:
    10 апр 2014
    Сообщения:
    562
    Симпатии:
    214
    - и дальше что?
    Не сохранять? - Тогда разумно делать проверку на компетентность ДО создания респонза и никаких проблем не будет.

    - если это хочется использовать "влоб" - делать проверку на postopen и сразу закрывать при геморе (с месагой) без сохранения.

    Если надо что-то сохранять - проверять на querysave c соотв. действиями (нулить поля, устанавливать флаг и т.п. ...)
     
  13. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    вот мне всегда "нравятся" вопросы..
    я хочу что-то сделать вот так-то, при объяснения и уточнениях выползают всякие нюансы, причем "внезапно"
    что казалось бы проще - описать процесс полностью (без "своего" - я хочу вот так решить) и детали реализации (кот. существенны)
    из-за отсутствия выше перечисленного - 11 ответов, 2-а дня - решения так и нет
     
Загрузка...
Похожие Темы - Проверка поля при
  1. Dragon108
    Ответов:
    8
    Просмотров:
    4.229
  2. xKlonx
    Ответов:
    6
    Просмотров:
    3.471
  3. susinmn
    Ответов:
    6
    Просмотров:
    3.709
  4. Gor
    Ответов:
    5
    Просмотров:
    3.792
  5. fedotxxl
    Ответов:
    13
    Просмотров:
    5.742

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