powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle Forms [игнор отключен] [закрыт для гостей] / Работа с Alert в Oracle Forms
13 сообщений из 13, страница 1 из 1
Работа с Alert в Oracle Forms
    #32504473
oramike
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может кому будет интересно и хотелось бы мнениями обменяться.

С Oracle Forms работаю недавно (год где-то) и при разработке форм стараюсь пользователю побольше информации сообщить :).

Но вначале столкнулся с проблемкой: в формсе-то можно alert создать и использовать, а в библиотеках и модулях меню нет. Поэтому на все свои формы наложил стандартик на наличие обязательных (всевозможных) alert-ов (их 9 оказалось) и разработал библиотеку работы с ними (см.приложение).

При использовании этой библиотеки (разумеется если во всех формах все alert-ы есть) и из модулей меню и из других библиотек сообщения можно выводить без проблем.

Может что-то в библиотеку добавить можно?
...
Рейтинг: 0 / 0
Работа с Alert в Oracle Forms
    #32504572
cwe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cwe
Гость
Я думаю, можно создать контрол форму, в которой бы хранились все алерты. При вызове ее с определенными параметрами она бы показывала тот или иной алерт. Кроме алертов, конечно же, форма могла бы и много чего другого делать.
...
Рейтинг: 0 / 0
Работа с Alert в Oracle Forms
    #32504595
oramike
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да мысль неплохая.
Типа если надо вывести сообщение, то запоминаем текущую и делаем Open_Form формы в окне которого сообщение выводим. Затем форму закрываем и осуществляем навигацию в запомненную форму.
Только думаю тут могут быть следующие проблемки: у нас используется клиент-серверная архитектура, причем формы хранятся на сервере в файле. Если для каждого сообщения форму с сервера тоскать, мне кажеться тормозить будет.
...
Рейтинг: 0 / 0
Работа с Alert в Oracle Forms
    #32512998
oramike
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А вобще сообщения выводить другой формой плохо, т.к. происходит навигация, а это кучу проблем за собой тянет.
...
Рейтинг: 0 / 0
Работа с Alert в Oracle Forms
    #32513042
Фотография John.D
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если вы накатали такую .плл библиотеку, то что вам мешает засунуть эти алерты в .олб?
...
Рейтинг: 0 / 0
Работа с Alert в Oracle Forms
    #32513043
muller
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вместо OPEN_FORM используйте CALL_FORM - и проблем с навигацией не будет.
...
Рейтинг: 0 / 0
Работа с Alert в Oracle Forms
    #32514098
Bombat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Использую несколько другую конструкцию.
Вообще незачем создавать много алертов (ИМХО).
Поступил следующим образом:
1. В *.olb библиотеке создал три алерта : STOP, CAUTION и NOTE. Отличаются они только "стилем сигнала". (По идее достаточно было бы и одного алерта, но почему-то нельзя (или у меня не получилось...) программно менять "стиль сигнала" у алерта).
2. Написал функцию вызова алерта:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
FUNCTION n_Alert(v_Name    IN VARCHAR2
                ,v_Title   IN VARCHAR2
                ,v_Message IN VARCHAR2
                ,v_Button1 IN VARCHAR2 DEFAULT 'Ок'
                ,v_Button2 IN VARCHAR2 DEFAULT ''
                ,v_Button3 IN VARCHAR2 DEFAULT '')
RETURN NUMBER IS
  alert_id     ALERT;
  alert_btn    NUMBER;
BEGIN
	alert_id := FIND_ALERT(v_Name);
	IF ID_NULL(alert_id) THEN
		RETURN  0 ;
	END IF;
	SET_ALERT_PROPERTY(alert_id, ALERT_MESSAGE_TEXT, v_Message);
	SET_ALERT_PROPERTY(alert_id, TITLE, v_Title);
	SET_ALERT_BUTTON_PROPERTY(alert_id, ALERT_BUTTON1, LABEL, v_Button1);
	SET_ALERT_BUTTON_PROPERTY(alert_id, ALERT_BUTTON2, LABEL, v_Button2);
	SET_ALERT_BUTTON_PROPERTY(alert_id, ALERT_BUTTON3, LABEL, v_Button3);
	alert_btn := SHOW_ALERT(alert_id);
	IF alert_btn = ALERT_BUTTON1 THEN
		RETURN  1 ;
	ELSIF alert_btn = ALERT_BUTTON2 THEN
		RETURN  2 ;
	ELSIF alert_btn = ALERT_BUTTON3 THEN
		RETURN  3 ;
	END IF;		
END n_Alert;

Пример использования функции:
Код: plaintext
1.
2.
3.
4.
5.
DECLARE
  alert NUMBER;
BEGIN
	    alert := n_Alert('CAUTION', 'Предупреждение', 'Удаление невозможно, т.к. существуют связные записи!');
END;
...
Рейтинг: 0 / 0
Работа с Alert в Oracle Forms
    #32516009
oramike
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
to Bombat
Я насколько помню пробовал сделать аналогично, но у меня не получалось в runtime присвоить название кнопке (если на этапе проектирования я задавал название только у одной кнопку), я так понял что количество кнопок в alert изменить програмно нельзя. Возможно проблемы с версией Oracle Forms (у меня 4a path).
Попробую разобраться в чем дело, если так действительно работает, то хорошо. Спасибо за информацию.
...
Рейтинг: 0 / 0
Работа с Alert в Oracle Forms
    #32520120
oramike
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если использовать 3 алерта, то проблема заключается в следующем:
1. Обычно кнопка по умолчанию - это последняя кнопка, ее программно нельзя настроить.
2. Если я создаю алерт с 3 кнопками, то програмно не могу убрать лишнии (если создать с 1 кнопкой то програмно можно добавить еще 1 или 2 кнопки и убрать их, но тогда по умолчанию будет всегда кнопка 1).
Если бы действительно можно было в Forms устанавливать у Alert программно тип сигнала, количество кнопок, кнопку по умолчанию, то можно бы обойтись 1-3 сигналами.
Но видимо это невозможно, а очень жаль :(
...
Рейтинг: 0 / 0
Работа с Alert в Oracle Forms
    #32521317
Bombat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 oramike
У меня тоже не получилось программно изменить кнопку по умолчанию... =(
Печально конечно, но не критично.
Итого: в любом случае придется создавать три алерта с одной кнопкой. Что получим в результате: сообщение любого типа, с любым количеством кнопок (от 1 до 3), любой заголовок, любое сообщение. Не удается задать только кнопку по умолчанию. В общем не так уж и плохо... ИМХО. =)
...
Рейтинг: 0 / 0
Работа с Alert в Oracle Forms
    #32523288
oramike
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
to bombat
Ну там где 3 кнопки там можно и 9 сделать, тогда последняя кнопка всегда будет последней, но я то-же склонился к 3 кнопкам и переписал библиотеку (действительно кнопка по умолчанию не критична, в крайнем случае вопрос можно поставить правильно). А что-бы быть уверенным в наличии сигналов я использую функцию Check_Alert из библиотеки My_Alert в триггере Pre-Form, но она может проверить только наличие самого сигнала, а не его типа и т.п. (к сожелению), а если использовать большое кол-во сигналов, то трудно контролировать правильно ли заданы все свойства. Жаль конечно но и с этим смирился.
...
Рейтинг: 0 / 0
Работа с Alert в Oracle Forms
    #32523292
oramike
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Имел в виду: там где 3 алерта там можно и 9 сделать, все равно их не создавать а копировать можно.
...
Рейтинг: 0 / 0
Работа с Alert в Oracle Forms
    #32738035
oramike
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот примерчик библиотеки и демоформы.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Oracle Forms [игнор отключен] [закрыт для гостей] / Работа с Alert в Oracle Forms
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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