Response

Обсуждение MAV Direct ODBC

Модератор: Andrew™

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion и MAV который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
Аватара пользователя
StillZero
Ветеран
Сообщения: 454
Зарегистрирован: 06 Июль 2005, 2:17
Откуда: Хабаровск
Контактная информация:

Response

Сообщение 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
Аватара пользователя
Andrew™
SQL профи
Сообщения: 651
Зарегистрирован: 05 Июль 2005, 16:32
Откуда: Москва, Зеленоград

Re: Response

Сообщение 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 немного по другому но тот же принцип
Аватара пользователя
StillZero
Ветеран
Сообщения: 454
Зарегистрирован: 06 Июль 2005, 2:17
Откуда: Хабаровск
Контактная информация:

Сообщение StillZero »

все равно не понял...

я ожидаю, что когда я нажму Отмена я получу в Response 2, а получаю 0

вот из help-а:

RequestCompleted EQUATE (1) ! Update Completed
RequestCancelled EQUATE (2) ! Update Aborted
Аватара пользователя
Andrew™
SQL профи
Сообщения: 651
Зарегистрирован: 05 Июль 2005, 16:32
Откуда: Москва, Зеленоград

Сообщение Andrew™ »

StillZero писал(а):все равно не понял...

я ожидаю, что когда я нажму Отмена я получу в Response 2, а получаю 0

вот из help-а:

RequestCompleted EQUATE (1) ! Update Completed
RequestCancelled EQUATE (2) ! Update Aborted
а чего не понятного, в пред ответе я написал тебе как живёт LocalResponse в процедуре, в начале процеуры он очищается, при удачном выполнении по ?Ok присваивается в RequestCompleted

и тока в конце процедуры происходит инициализация GlobalResponse по правилам из пред письма
Аватара пользователя
Admin
Администратор
Сообщения: 3960
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 25 раз
Поблагодарили: 22 раза
Контактная информация:

Сообщение 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 ! почему ??????

Объясни в чем дело?
Аватара пользователя
Andrew™
SQL профи
Сообщения: 651
Зарегистрирован: 05 Июль 2005, 16:32
Откуда: Москва, Зеленоград

Сообщение 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
Ответить