tveritin
Зарегистрирован: 26.01.2016 Сообщения: 191 Откуда: Санкт-Петербург
|
Добавлено: Чт Апр 21, 2022 10:32 Заголовок сообщения: "Подвисание" после вывода сообщения в TAB-процедур |
|
|
Есть tab-процедура
Код: | if dlgfield[''] == '-1' then {
let _old_from_d := @leaves_ahead_dlg:from_d[''];
let _old_d_to := @leaves_ahead_dlg:d_to[''];
};
if @leaves_ahead_dlg:from_d > @leaves_ahead_dlg:d_to then {
if @leaves_ahead_dlg:from_d[''] <> _old_from_d[''] then {
let @leaves_ahead_dlg:from_d = _old_from_d[''] as date;
let _old_from_d := @leaves_ahead_dlg:from_d[''];
let _old_d_to := @leaves_ahead_dlg:d_to[''];
-- msg 2041, @leaves_ahead_lst;
};
if @leaves_ahead_dlg:d_to[''] <> _old_d_to[''] then {
let @leaves_ahead_dlg:d_to = _old_d_to[''] as date;
let _old_from_d := @leaves_ahead_dlg:from_d[''];
let _old_d_to := @leaves_ahead_dlg:d_to[''];
-- msg 2041, @leaves_ahead_lst;
};
msg[\3Дата начала больше даты окончания] 0x01;
};
if year(@leaves_ahead_dlg:from_d) <> @leave_sched_main_dlg:cur_year then {
if @leaves_ahead_dlg:from_d[''] <> _old_from_d[''] then {
let @leaves_ahead_dlg:from_d = _old_from_d[''] as date;
let _old_from_d := @leaves_ahead_dlg:from_d[''];
let _old_d_to := @leaves_ahead_dlg:d_to[''];
-- msg 2041, @leaves_ahead_lst;
};
if @leaves_ahead_dlg:d_to[''] <> _old_d_to[''] then {
let @leaves_ahead_dlg:d_to = _old_d_to[''] as date;
let _old_from_d := @leaves_ahead_dlg:from_d[''];
let _old_d_to := @leaves_ahead_dlg:d_to[''];
-- msg 2041, @leaves_ahead_lst;
};
msg[\3Дата начала за границами выбранного года] 0x01;
};
--let _old_from_d := @leaves_ahead_dlg:from_d[''];
--let _old_d_to := @leaves_ahead_dlg:d_to[''];
msg 2041, @leaves_ahead_lst; |
Если в диалоге поставить d_from больше, чем d_to и ткнуть мышью в поле d_to, то мы получаем сообщение "Дата начала больше даты окончания" и после нажатия кнопки ОК "крутящийся" курсор мыши.
Если после установки d_from перейти на поле d_to клавишей tab, то подвисания не происходит.
Ситуация, в целом не очень критичная, выйти из нее можно повторным щелчком на поле d_to, но хотелось бы понять почему так происходит.
Кстати, если убрать команду вывода сообщения, "Дата начала больше даты окончания", то никакого подвисания не происходит.
msg заменяли на return, но это не решает проблему. |
|