Баг или Hide/disable
Добавлено: 11 Октябрь 2012, 14:28
Добрый день!
Кларион 6, АВС, TPS, Windows XP.
Хотя многие параметры не существенны.
Долгое время искали ошибку в стабильно и долго работающей программе. И наконец, поймали.
Специально сделали маленькую прогу на проверку:
есть файл TPS на 2 поля - первое ключевое уникальное - второе любое
Создали броуз
!--------
BRW1::View:Browse VIEW(my)
PROJECT(MY:num)
PROJECT(MY:fio)
END
!----------
к этому броузу - update процедуру
В embeds update в закладке AfteropenWindows вставлен текст:
!----
if SELF.Request<>InsertRecord then
hide(?MY:num)
end
display
!----
Все прозрачно и все работает: если запись добавляется, то MY:num - вижу и заполняю, если редакстируется, то я его скрываю (не даю редактировать).
И еще - главное: set orders стоит 1- MY:num и 2-MY:fio
Так вот: Если я вхожу в изменение , вижу в окне только ФИО, набираю на клаве любые цифры(ФИО при этом не меняется) и нажимаю Enter, то в данной записи МЕНЯЕТСЯ MY:num со всеми вытекающими последствиями!!!
Вывод: HIDE - не панацея от запрета изменеия поля!
А вот HIDE вместе с Disable - действительно закрывает поле от изменеия и устанавливает select на второе поле MY:fio, пропуская MY:num , хотя в set orders оно первое.
Вероятно это азы, но но столько времени выступающие как грабли!!!
Поэтому - делюсь, возможно кому-то это будет интересно!
Алексей
Кларион 6, АВС, TPS, Windows XP.
Хотя многие параметры не существенны.
Долгое время искали ошибку в стабильно и долго работающей программе. И наконец, поймали.
Специально сделали маленькую прогу на проверку:
есть файл TPS на 2 поля - первое ключевое уникальное - второе любое
Создали броуз
!--------
BRW1::View:Browse VIEW(my)
PROJECT(MY:num)
PROJECT(MY:fio)
END
!----------
к этому броузу - update процедуру
В embeds update в закладке AfteropenWindows вставлен текст:
!----
if SELF.Request<>InsertRecord then
hide(?MY:num)
end
display
!----
Все прозрачно и все работает: если запись добавляется, то MY:num - вижу и заполняю, если редакстируется, то я его скрываю (не даю редактировать).
И еще - главное: set orders стоит 1- MY:num и 2-MY:fio
Так вот: Если я вхожу в изменение , вижу в окне только ФИО, набираю на клаве любые цифры(ФИО при этом не меняется) и нажимаю Enter, то в данной записи МЕНЯЕТСЯ MY:num со всеми вытекающими последствиями!!!
Вывод: HIDE - не панацея от запрета изменеия поля!
А вот HIDE вместе с Disable - действительно закрывает поле от изменеия и устанавливает select на второе поле MY:fio, пропуская MY:num , хотя в set orders оно первое.
Вероятно это азы, но но столько времени выступающие как грабли!!!

Поэтому - делюсь, возможно кому-то это будет интересно!
Алексей