События формы

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

  1. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    Всем привет!
    Помогите плиз... нужно отловить момент когда пользователь при закрытии вормы на вопрос "Сохранить?" нажимает кнопку "Нет"
    Не соображу что-то как это сделать :(
     
  2. medin84

    medin84 Well-Known Member

    Регистрация:
    27 июн 2007
    Сообщения:
    106
    Симпатии:
    0
    Думаю можно попробовать так.
    в querysave в какую нибудь переменную в случае нажатия да присвоить значение
    допустим click="yes"
    тоесть если нажать на нет при запросе на сохранение событие querysave не срабатывает
    значит в queryclose значение click будет пустое
     
  3. Kee_Keekkenen

    Kee_Keekkenen Well-Known Member

    Регистрация:
    5 сен 2006
    Сообщения:
    616
    Симпатии:
    4
    непонятно что это за кнопка и где она..
    а.. это системная хрень вроде не отлавливается..
    у формы есть события Querysave и Queryclose,
    Querysave срабатывает каждый раз при сохранении документа через интерфейс,
    Queryclose срабатывает при закрытии формы документа..
    соответственно в случае, если пользователь нажимает Нет, то Querysave не срабатывает и Queryclose срабатывает,
    т.о. на логике этих событий можно что-то построить.. ну, то что вы хотите..
     
  4. RonTermit

    RonTermit Гость

    отловить результат окна нельзя ....зато можно запретить егго появление...создать в документе поле SaveOptions и утановить парметр в 0 тогда документ будет не возможно сохранить из интерфейса пользователя....
    принудительно сохранение на кнопке будет выглядеть следующим образом ......
    doc.SaveOptions=1
    Call uidoc.Save
     
  5. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    про SaveOptions знаю... оно мне не подходит
    но не хочется с этим играться.
    Надо попробовать отловить системное событие
    буду пробовать как говорит Kee_Keekkenen
     
  6. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    так... то что хотел сделал.... просто оказывается при закрытии формы сначала идет событие QueryClose

    Ну да это не столь важно... вопрос теперь в другом.... есть ли какой-то метод или событие о том что документ модифицировался (не путать с EditMode ) ???
     
  7. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    нету, только перебором, на сколько мне известно...
     
  8. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Агент можно запустить.
     
  9. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    а можно и не запускать B)
    ты о чем, объясни, плиз?..
     
  10. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    перебор полей это хорошо... но не хочется B)
    но похоже придется ;)
     
  11. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Агент на изменение/добавление документа.

    Или вы про что? B)
     
  12. Kee_Keekkenen

    Kee_Keekkenen Well-Known Member

    Регистрация:
    5 сен 2006
    Сообщения:
    616
    Симпатии:
    4
    есть маленькая возможность определить редактировались ли поля документа при условии, что не выполнялся рефреш формы ни пользователем, ни одним из изменных полей..
    тогда при сохранении документа свойство Notesuidocument.ModifiedSinceSaved имеет значение true .. в хелпе почему-то этого свойства нет, вероятно оно новое.. да, это работает с семерки..

    метод не надежный..
     
  13. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    про старую добрую задачу :) как определить были ли внесены изменения в открытый документ. например, СавеОпшинс у тебя =1, и ты хочешь самостоятельно выдать запрос пользователю, нужно ли изменить изменения
     
  14. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    SaveOptions - не подходит. И запрос тоже... я изгалился.. и одной формой пользуюсь как обычно и как шаблон для DialogBox. По еэто му лишние вопросы пользователю из DialogBox не приемлемы. Нужно какое-то универсальное средство прозрачное для пользователя в любом варианте
     
  15. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    QueryClose + Source.DialogBoxCancelled?
     
  16. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Может разделить на две формы? Эту форму запихнуть в подформу. Создать еще одну форму. В обе формы запихнуть подформу. Одна формы для диалога, другая - обычная.

    Что-то я намудрил. Можно обойтись одной формой и одной подформой.
     
  17. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    Omh
    Дело в том, при использовании DialogBox возникает только событие QueryClose, а QuerySave + не возникает вообще

    Если просто пользоваться формой без DialogBox Source.DialogBoxCancelled не возникает вообще

    Отсюда вопрос.... как сохранять документ если он модифицирован или создан. Под созданием понимаю заполненине хоть одного поля

    Medevic
    просто не хочется плодить формы :( и следить за несколькими... да и в форме этой много всевозможных проверок... конечно все это можно вынести в библиотеку... вобщем я думаю над этим
     
  18. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    NickProstoNick
    Поэтому я и предлагаю всё перенести в подформу(subform). Чтобы всё общее было в одном месте. В диалоге используешь подформу без вопросов пользователю. Иначе используешь форму с внедренной подформой. Там же делаешь вопросы пользователю.
     
  19. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Medevic
    Точно то же хотел сказать...
     
  20. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Да здесь всё очевидно. :(
    Лично я никогда не использую одну и ту же форму и для диалога, и просто для работы.
     
Загрузка...

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