Oracle формирует триггер после нажатия кнопки
Я создал текстовое поле и кнопку. Я хотел, чтобы после нажатия кнопки текстовое поле стало пустым, фокус должен вернуться к текстовому полю.
BEGIN
IF :blk.textbox IS NULL THEN
msg_alert('Error message', 'E', FALSE);
end if;
END;
Я уже пытался поместить приведенный выше код в триггер WHEN-BUTTON-PRESSED, но ничего не происходит.
2 ответа
Поместите свой код в триггер WHEN-VALIDATE-ITEM для элемента BLK.TEXTBOX.
BEGIN
IF :blk.textbox IS NULL THEN
msg_alert('Error message', 'E', FALSE);
--if msg_alert procedure has no RAISE FORM_TRIGGER_FAILURE, then uncomment next line
-- RAISE FORM_TRIGGER_FAILURE;
end if;
END;
Вы также можете установить для свойства MOUSE NAVIGATE значение ЛОЖЬ (или НЕТ) кнопки, чтобы фокус не переместился на эту кнопку после нажатия.
используйте GO_ITEM также для установки фокуса на текстовый элемент. образец,
GO_ITEM('blk.textbox');
Зачем изобретать велосипед? Установить текстовые элементы REQUIRED
собственность на YES
,
Прочитав комментарии, которые вы оставили для ответа @eifla001, я не уверен, какой у вас код. Примерно так работает на моих формах 10g (но должно работать на любой версии):
-- WHEN-BUTTON-PRESSED trigger
if :blk.textbox is null then
go_item('blk.textbox');
end if;
Если это не работает, проверьте свойства TEXTBOX. Это действительно текстовый (или отображаемый) элемент? Это включено? Есть ли SET_ITEM_PROPERTY
звонки, которые делают его недоступным?
Потому что задача, которую вы собираетесь выполнить, действительно тривиальна, она должна работать именно так.