Страница 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