Страница 1 из 1

Метод сохранения в EIP

Добавлено: 15 Октябрь 2018, 11:21
Игорь Столяров
Привет всем !

Clarion 63/10, ABC.
Есть BROWSE, в нём включен EIP. Нужно после завершения редактирования строки выполнить проверку введённых данных.

Если сохранение выполняется нажатием ENTER - то это место BRW1::EIPManager.TakeCompleted PROCEDURE(BYTE Force).
Здесь всё понятно.

Если сохранение выполняется нажатием TAB на последнем редактируемом поле в строке BROWSE, то выдаётся запрос:

SaveEIP.jpg

Не могу понять в каком методе EIP он выдаётся ? Как поймать эту точку выдачи запроса, чтобы вставить перед ней проверку ?
Заранее спасибо за помощь … :)

Метод сохранения в EIP

Добавлено: 15 Октябрь 2018, 11:47
PavelNK
Видимо здесь
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

Метод сохранения в EIP

Добавлено: 15 Октябрь 2018, 11:50
kreator
В свойствах EIP на нажатие Tab на последнем поле поставить значение для Save "Always". И вообще может на все действия пользователя выставить значение для Save "Always". А свою проверку делать в методе "TakeAcceptAll". Возможно как раз этот метод отвечает за вызов prompt'ов. Уже на помню. Нашёл, что свою проверку удобно делать там и сразу забыл.

Метод сохранения в EIP

Добавлено: 15 Октябрь 2018, 12:03
Игорь Столяров
Спасибо ! Запрос действительно в TakeAcceptAll - далее разберусь … :)

Метод сохранения в EIP

Добавлено: 15 Октябрь 2018, 12:23
kreator
Хотя TakeCompleted явно вызывает TakeAcceptAll. Поэтому похоже по барабану. Посмотрел по тексту - при нажатии на Tab вызывается TakeCompleted(0).