• 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

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

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
Всем привет!
Помогите плиз... нужно отловить момент когда пользователь при закрытии вормы на вопрос "Сохранить?" нажимает кнопку "Нет"
Не соображу что-то как это сделать :(
 
Думаю можно попробовать так.
в querysave в какую нибудь переменную в случае нажатия да присвоить значение
допустим click="yes"
тоесть если нажать на нет при запросе на сохранение событие querysave не срабатывает
значит в queryclose значение click будет пустое
 
непонятно что это за кнопка и где она..
а.. это системная хрень вроде не отлавливается..
у формы есть события Querysave и Queryclose,
Querysave срабатывает каждый раз при сохранении документа через интерфейс,
Queryclose срабатывает при закрытии формы документа..
соответственно в случае, если пользователь нажимает Нет, то Querysave не срабатывает и Queryclose срабатывает,
т.о. на логике этих событий можно что-то построить.. ну, то что вы хотите..
 
отловить результат окна нельзя ....зато можно запретить егго появление...создать в документе поле SaveOptions и утановить парметр в 0 тогда документ будет не возможно сохранить из интерфейса пользователя....
принудительно сохранение на кнопке будет выглядеть следующим образом ......
doc.SaveOptions=1
Call uidoc.Save
 
про SaveOptions знаю... оно мне не подходит
но не хочется с этим играться.
Надо попробовать отловить системное событие
буду пробовать как говорит Kee_Keekkenen
 
так... то что хотел сделал.... просто оказывается при закрытии формы сначала идет событие QueryClose

Ну да это не столь важно... вопрос теперь в другом.... есть ли какой-то метод или событие о том что документ модифицировался (не путать с EditMode ) ???
 
нету, только перебором, на сколько мне известно...
 
перебор полей это хорошо... но не хочется B)
но похоже придется ;)
 
есть маленькая возможность определить редактировались ли поля документа при условии, что не выполнялся рефреш формы ни пользователем, ни одним из изменных полей..
тогда при сохранении документа свойство Notesuidocument.ModifiedSinceSaved имеет значение true .. в хелпе почему-то этого свойства нет, вероятно оно новое.. да, это работает с семерки..

метод не надежный..
 
Агент на изменение/добавление документа.

Или вы про что? :(
про старую добрую задачу :) как определить были ли внесены изменения в открытый документ. например, СавеОпшинс у тебя =1, и ты хочешь самостоятельно выдать запрос пользователю, нужно ли изменить изменения
 
SaveOptions - не подходит. И запрос тоже... я изгалился.. и одной формой пользуюсь как обычно и как шаблон для DialogBox. По еэто му лишние вопросы пользователю из DialogBox не приемлемы. Нужно какое-то универсальное средство прозрачное для пользователя в любом варианте
 
SaveOptions - не подходит. И запрос тоже... я изгалился.. и одной формой пользуюсь как обычно и как шаблон для DialogBox. По еэто му лишние вопросы пользователю из DialogBox не приемлемы. Нужно какое-то универсальное средство прозрачное для пользователя в любом варианте
Может разделить на две формы? Эту форму запихнуть в подформу. Создать еще одну форму. В обе формы запихнуть подформу. Одна формы для диалога, другая - обычная.

Что-то я намудрил. Можно обойтись одной формой и одной подформой.
 
Omh
Дело в том, при использовании DialogBox возникает только событие QueryClose, а QuerySave + не возникает вообще

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

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

Medevic
просто не хочется плодить формы :( и следить за несколькими... да и в форме этой много всевозможных проверок... конечно все это можно вынести в библиотеку... вобщем я думаю над этим
 
NickProstoNick
Поэтому я и предлагаю всё перенести в подформу(subform). Чтобы всё общее было в одном месте. В диалоге используешь подформу без вопросов пользователю. Иначе используешь форму с внедренной подформой. Там же делаешь вопросы пользователю.
 
Да здесь всё очевидно. :(
Лично я никогда не использую одну и ту же форму и для диалога, и просто для работы.
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab