Создание триггеров входа и выхода из формы

Код триггера «WHEN-NEW-FORM-INSTANCE»:

:System.Message_Level:= '5'; if:PARAMETER.kod_dover is null then -- Если новый документ     return; end if;   Go_Block('DOVER'); Execute_Query; Go_Block('DOVER_SP'); Execute_Query; Go_Block('DOVER');

 

При закрытии окна формы выполняется  триггер «WHEN-WINDOW-CLOSED». Если в форме есть несохраненные данные, то нужно предложить пользователю их сохранить. Для этих целей необходимо использовать сообщение «Alert».

Чтобы создать объект «Alert», необходимо в окне «Object Navigator» выделить узел «Alerts» и выбрать пункт меню «Edit->Create».

Для нового сообщения «Alert» установим следующие свойства:

– Name: SAVE_ALERT

– Title: Сообщение

– Message: Вы хотите сохранить сделанные Вами изменения?

– Button 1 Label: Да

– Button 2 Label: Нет

– Button 3 Label: Отмена

– Default Alert Button: Button 3

Теперь создадим триггер формы с «WHEN-WINDOW-CLOSED» следующим кодом:

 

DECLARE     but NUMBER;     stat VARCHAR2(14); BEGIN     Go_Block('DOVER');     stat:=:System.Block_Status;     Go_Block('DOVER_SP');     stat:= stat ||:System.Block_Status;              if stat <> 'QUERYQUERY' THEN               but:= Show_Alert('SAVE_ALERT');                                  if but = ALERT_BUTTON3 then -- Нажали "Отмена"                        return;               end if;               if but = ALERT_BUTTON1 then -- Нажали "Да"                        Save_Form;               end if;     end if;              Exit_Form(NO_VALIDATE); END;

 

 

Изменение формы D_DOVER4_LIST

Изменим форму «D_DOVER4_LIST» («Список доверенностей») так, чтобы из списка документов можно было открыть выбранный документ в форме «D_DOVER4» («Доверенность»), либо создать новый документ.

Теперь код триггера «WHEN-NEW-FORM-INSTANCE» будет выглядеть таким образом:

 

DECLARE     p PARAMLIST; BEGIN       :system.message_level:=5;         :TAIL.begind:=Trunc(sysdate,'MM');       :TAIL.endd:=last_day(sysdate);        SET_BLOCK_PROPERTY('DOVER4_L', DEFAULT_WHERE, 'datav between '''||:TAIL.BEGIND||''' AND '''||:TAIL.ENDD||'''');         Go_Block('DOVER4_L');       Execute_Query;          -- Установка параметров     p:= Create_Parameter_List('p_list1');     Add_Parameter(p, 'KOD_DOVER', TEXT_PARAMETER, '1'); END;

 

Поместите две кнопки «Новый документ» (Name: NEW_BUTTON) и «Открыть документ» (Name: OPEN_BUTTON), которые расположите в нижней части формы.

Код кнопки NEW_BUTTON:

 

Call_Form('D_DOVER4'); Go_Block('DOVER4_L'); Execute_Query;

 

Код кнопки OPEN_BUTTON:

Set_Parameter_Attr('p_list1', 'KOD_DOVER', TEXT_PARAMETER,:DOVER4_L.kod); Call_Form('D_DOVER4', NO_HIDE, NO_REPLACE, NO_QUERY_ONLY, NO_SHARE_LIBRARY_DATA, 'p_list1'); Go_Block('DOVER4_L'); Execute_Query;

 

После того, как формы документа и журнала готовы, подключите документ и журнал в ранее созданное меню «TOP_MENU». Для этого откройте модуль меню и добавьте пункты «Документы» и «Журналы» (если они не существуют), далее добавьте подпункт «Доверенность №4» в два этих пункта.

Добавьте PL/SQL код вызова формы журнала для подпункта «Доверенность №4».

 

OPEN_FORM(‘D_DOVER4_LIST’);

 

Добавьте PL/SQL код вызова формы документа для подпункта «Доверенность №4».

 

OPEN_FORM(‘D_DOVER4’);

 

В свойстве модуля формы журнала и документа «MENU MODULE» введите «TOP_MENU», для того чтобы при открытии форм загружалось меню «TOP_MENU».

Сохраните и откомилируйте файлы форм журнала, документа и меню. Запустите стартовый модуль «START» и попробуйте вызвать из меню журнал «Доверенность №4».

Теперь форму можно сохранить под именем «D_DOVER4_LIST», запустить и проверить работоспособность внесенных изменений.



Лабораторная работа №9. Создание отчета по объектным таблицам

 

Цель работы: научиться создавать отчеты по объектным таблицам.

Задание: создать отчет для объектной таблицы; проверить работоспособность отчета; настроить форму списка документов для вызова отчета.

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: