Гость
Форумы / Oracle Forms [игнор отключен] [закрыт для гостей] / Как не выпустить пользователя / 7 сообщений из 7, страница 1 из 1
08.07.2013, 13:00
    #38323965
Как не выпустить пользователя
Как не выпустить пользователя из TEXT_ITEM пока его значение не будет удовлетворять некоторому условию? Например, равняться 3 или 33 или 333.
При этом у TEXT_ITEM LOV должен отсутствовать.
...
Рейтинг: 0 / 0
08.07.2013, 13:33
    #38324011
Как не выпустить пользователя
Можно, конечно просто разделить на ноль в WHEN-VALIDATE-ITEM триггере.
Но при этом возникают сообщения об ошибке. А хотелось бы, чтобы их не было...
...
Рейтинг: 0 / 0
08.07.2013, 13:37
    #38324023
mRdUKE
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как не выпустить пользователя
Не выпускать,

в вышеупомянутом триггере, что-то вроде этого:
Код: plsql
1.
2.
3.
IF :BLOCK.TEXT_ITEM<>'3' OR :BLOCK.TEXT_ITEM IS NULL THEN 
	raise form_trigger_failure; 
END IF;
...
Рейтинг: 0 / 0
08.07.2013, 13:43
    #38324035
mRdUKE
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как не выпустить пользователя
в вашем случае так вернее
Код: plsql
1.
2.
3.
IF :BL.A NOT IN (3,33,333) OR :BL.A IS NULL THEN 
	raise form_trigger_failure; 
END IF;
...
Рейтинг: 0 / 0
08.07.2013, 14:00
    #38324069
Как не выпустить пользователя
Спасибо, mRdUKE

К сожалению, raise form_trigger_failure позволяет покинуть TEXT_ITEM.
Это для меня является удивительным.

Деление на ноль - оставляет в нём и не выпускает, но формирует текст с ошибкой.

Как такое может быть? какое из свойств формы следует проверить?
...
Рейтинг: 0 / 0
08.07.2013, 14:17
    #38324091
mRdUKE
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как не выпустить пользователя
Действительно удивительно.
Как вариант ещё можно попробовать обрабатывать ошибку в триггерах ON-MESSAGE, ON-ERROR, ... :SYSTEM.MESSAGE_LEVEL = ...
Или вместо raise form_trigger_failure сделать go-item в этот же text_item, а чтобы обойти FRM-40737 читать тут
...
Рейтинг: 0 / 0
08.07.2013, 15:53
    #38324298
Павел Лузанов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как не выпустить пользователя
Не выпускатьК сожалению, raise form_trigger_failure позволяет покинуть TEXT_ITEM.
Это для меня является удивительным.

Здесь нет ничего удивительного :-)
Это просто невозможно!
Невозможно покинуть text_item если when-validate-item завершается вызовом ошибки, в частности raise form_trigger_failure
...
Рейтинг: 0 / 0
Форумы / Oracle Forms [игнор отключен] [закрыт для гостей] / Как не выпустить пользователя / 7 сообщений из 7, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]