Привет всем !
Clarion 63/10, ABC.
Есть BROWSE, в нём включен EIP. Нужно после завершения редактирования строки выполнить проверку введённых данных.
Если сохранение выполняется нажатием ENTER - то это место BRW1::EIPManager.TakeCompleted PROCEDURE(BYTE Force).
Здесь всё понятно.
Если сохранение выполняется нажатием TAB на последнем редактируемом поле в строке BROWSE, то выдаётся запрос:
Не могу понять в каком методе EIP он выдаётся ? Как поймать эту точку выдачи запроса, чтобы вставить перед ней проверку ?
Заранее спасибо за помощь …
Метод сохранения в EIP
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
- Игорь Столяров
- Ветеран движения
- Сообщения: 7373
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 13 раз
- Поблагодарили: 48 раз
Метод сохранения в EIP
Видимо здесь
control.tpw
#CONTROL(SaveButton,'Write Records to a data file'),PRIMARY('Update Record on Disk',NOKEY),DESCRIPTION('Update ' & %Primary & ' record on disk'),WINDOW,HLP('~TPLControlSaveButton')
IF RecordChanged
#IF(%ActionOnCancel = 'Offer to save changes')
CASE StandardWarning(Warn:SaveOnCancel)
OF Button:Yes
POST(Event:Accepted,%OKControl)
Update::Reloop = 1
EXIT
OF Button:No
OF BUTTON:Cancel
SELECT(%FirstField)
Update::Reloop = 1
EXIT
END
#ELSE
IF StandardWarning(Warn:ConfirmCancel) = Button:No
SELECT(%FirstField)
Update::Reloop = 1
EXIT
END
#ENDIF
END
#ENDIF
#ENDIF
control.tpw
#CONTROL(SaveButton,'Write Records to a data file'),PRIMARY('Update Record on Disk',NOKEY),DESCRIPTION('Update ' & %Primary & ' record on disk'),WINDOW,HLP('~TPLControlSaveButton')
IF RecordChanged
#IF(%ActionOnCancel = 'Offer to save changes')
CASE StandardWarning(Warn:SaveOnCancel)
OF Button:Yes
POST(Event:Accepted,%OKControl)
Update::Reloop = 1
EXIT
OF Button:No
OF BUTTON:Cancel
SELECT(%FirstField)
Update::Reloop = 1
EXIT
END
#ELSE
IF StandardWarning(Warn:ConfirmCancel) = Button:No
SELECT(%FirstField)
Update::Reloop = 1
EXIT
END
#ENDIF
END
#ENDIF
#ENDIF
-
- ✯ Ветеран ✯
- Сообщения: 4983
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 7 раз
- Поблагодарили: 20 раз
Метод сохранения в EIP
В свойствах EIP на нажатие Tab на последнем поле поставить значение для Save "Always". И вообще может на все действия пользователя выставить значение для Save "Always". А свою проверку делать в методе "TakeAcceptAll". Возможно как раз этот метод отвечает за вызов prompt'ов. Уже на помню. Нашёл, что свою проверку удобно делать там и сразу забыл.
We are hard at work… for you.
- Игорь Столяров
- Ветеран движения
- Сообщения: 7373
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 13 раз
- Поблагодарили: 48 раз
Метод сохранения в EIP
Спасибо ! Запрос действительно в TakeAcceptAll - далее разберусь …
За теми кто отстал - не возвращаться. (С) Кодекс
-
- ✯ Ветеран ✯
- Сообщения: 4983
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 7 раз
- Поблагодарили: 20 раз
Метод сохранения в EIP
Хотя TakeCompleted явно вызывает TakeAcceptAll. Поэтому похоже по барабану. Посмотрел по тексту - при нажатии на Tab вызывается TakeCompleted(0).
We are hard at work… for you.