Страница 1 из 1
Response
Добавлено: 08 Декабрь 2005, 4:12
StillZero
Речь идет о определении с каким действием мы зашли форму редактирования и с каким результатом вышли.
Вообщем то с Request-ом все понятно и прозрачно.
С Respons-ом нет.
На метод MAV:Save.Kill вешаю message(SELF.Response)
При нажатии "ОК" SELF.Response = 1 = RequestCompleted
При нажатии "Отмена" SELF.Response = 0 <> RequestCancelled
Если проверять SELF.Response от ABC WindowManager-а, класса ThisWindow, на методе Kill
то по нажатию ОК ThisWindow.Response = 0 <>RequestCompleted
по нажатию "Отмена" ThisWindow.Response = 2 = RequestCancelled, но если нажать Esc, то ThisWindow.Response = 0 <>RequestCancelled
Re: Response
Добавлено: 08 Декабрь 2005, 8:48
Andrew™
StillZero писал(а):Речь идет о определении с каким действием мы зашли форму редактирования и с каким результатом вышли.
Вообщем то с Request-ом все понятно и прозрачно.
С Respons-ом нет.
На метод MAV:Save.Kill вешаю message(SELF.Response)
При нажатии "ОК" SELF.Response = 1 = RequestCompleted
При нажатии "Отмена" SELF.Response = 0 <> RequestCancelled
Если проверять SELF.Response от ABC WindowManager-а, класса ThisWindow, на методе Kill
то по нажатию ОК ThisWindow.Response = 0 <>RequestCompleted
по нажатию "Отмена" ThisWindow.Response = 2 = RequestCancelled, но если нажать Esc, то ThisWindow.Response = 0 <>RequestCancelled
это же прописные истины, в конце любой шаблонной процедуры перед RETURN стоит
Код: Выделить всё
IF LocalResponse
GlobalResponse = LocalResponse
ELSE
GlobalResponse = RequestCancelled
END
в ABC немного по другому но тот же принцип
Добавлено: 08 Декабрь 2005, 9:13
StillZero
все равно не понял...
я ожидаю, что когда я нажму Отмена я получу в Response 2, а получаю 0
вот из help-а:
RequestCompleted EQUATE (1) ! Update Completed
RequestCancelled EQUATE (2) ! Update Aborted
Добавлено: 09 Декабрь 2005, 8:42
Andrew™
StillZero писал(а):все равно не понял...
я ожидаю, что когда я нажму Отмена я получу в Response 2, а получаю 0
вот из help-а:
RequestCompleted EQUATE (1) ! Update Completed
RequestCancelled EQUATE (2) ! Update Aborted
а чего не понятного, в пред ответе я написал тебе как живёт LocalResponse в процедуре, в начале процеуры он очищается, при удачном выполнении по ?Ok присваивается в RequestCompleted
и тока в конце процедуры происходит инициализация GlobalResponse по правилам из пред письма
Добавлено: 09 Декабрь 2005, 9:37
Admin
Давай я еще раз объясню...
Есть стандартная форма ABC. Во ее ответы при действиях:
Esc - SELF.Response = 0
Ok - SELF.Response = 1
Cancel - SELF.Response = 2
Есть твоя форма MAV. Во ее ответы при действиях:
Esc - SELF.Response = 0
Ok - SELF.Response = 1
Cancel - SELF.Response = 0 ! почему ??????
Объясни в чем дело?
Добавлено: 12 Декабрь 2005, 9:58
Andrew™
Admin писал(а):Давай я еще раз объясню...
Есть стандартная форма ABC. Во ее ответы при действиях:
Esc - SELF.Response = 0
Ok - SELF.Response = 1
Cancel - SELF.Response = 2
Есть твоя форма MAV. Во ее ответы при действиях:
Esc - SELF.Response = 0
Ok - SELF.Response = 1
Cancel - SELF.Response = 0 ! почему ??????
Объясни в чем дело?
если анализировать GlobalResponse в вызываемой Browse после вызова Form, он правильный?, ДА
в самой форме, есть класс MAV:Save с SELF.Response, да, он приниает два значения 1 или 0, и УЖЕ в конце процедуры происходит инициалтзация GLobalResponse по правилам описанным выше, скорее всего тут правила в ABC и Legasy немного разные в самой форме редактирования, я заюзал правила Legasy