Таймер
Таймер (Timer) – это способ выполнения кода через определенное время. По истечении указанного времени вызывается тригер WHEN-TIMER-EXPIRED, в котором и обрабатывается реакция на запуск таймера.
Таймером очень хорошо пользоваться для непрерывного отслеживания каких-либо действий. Вы также можете использовать таймер как планировщик, закрывая формы по истечении указанного времени, для выполнения автосохранения в форме, для согласованного обновления данных в разных блоках формы и т.д.
Программное управление таймером
Oracle Forms позволяет создавать таймер только программным путем, то есть вы не можете создать таймер в навигаторе объектов. Вы можете удалять таймер и устанавливать его характеристики программно, используя встроенные подпрограммы. Ниже перечислены процедуры и функции для работы с таймером:
- CREATE_TIMER
- DELETE_TIMER
- SET_TIMER
- FIND_TIMER
Создание таймера
CREATE_TIMER – создает таймер с заданным числом миллисекунд и возможностью повторного срабатывания. Возвращает числовой идентификатор таймера.
Синтаксис:
CREATE_TIMER(TIMER_NAME IN varchar2, MILLISECONDS IN number, ITERATE IN number) RETURN FORMS4C.TIMER;
TIMER_NAME – определяет имя таймера;
MILLISECONDS – определяет количество миллисекунд, по истечении которых таймер срабатывает, вызывая триггер WHEN-TIMER-EXPIRED;
ITERATE– определяет количество срабатываний таймера. Это свойство принимает два параметра. Если в ITERATE задано 1000, значит, триггер сработает через секунду.
Вместо ITERATE можно указывать следующие константы:
REPEAT – при указании этой константы триггер WHEN-TIMER-EXPIRED будет срабатывать каждый раз по истечении времени, указанного в ITERATE, до тех пор, пока таймер не будет удален или форма не будет закрыта.
NO_REPEAT – при указании этой константы триггер WHEN-TIMER-EXPIRED сработает всего один раз по истечении времени, указанного в ITERATE.
Пример:
DECLARE TimerId Timer; BEGIN TimerId:= Find_Timer ('T_Timer'); IF NOT Id_Null (TimerId) THEN Delete_Timer (TimerId); END IF; TimerId:= Create_Timer ('T_TIMER', 1000, NO_REPEAT); END;
или
DECLARE timer_id Timer := find_timer ( 'emp_timer' ); BEGIN if id_null(timer_id) then timer_id := CREATE_TIMER ('emp_timer', 10000, REPEAT); end if; END;
Удаление таймера
DELETE_TIMER – удаляет таймер, принимая в качестве параметра его идентификатор, полученный при создании командой CREATE_ TIMER, или его имя.
Синтаксис процедуры DELETE_TIMER:
DELETE_TIMER(TIMER_NAME IN varchar2); или DELETE_TIMER(TIMER_ID IN FORMS4C.TIMER);
TIMER_NAME – определяет имя таймера;
TIMER_ID – идентификатор, полученный при создании командой CREATE_TIMER.
Пример:
DELETE_TIMER('T_Timer'); или DECLARE TimerId Timer; BEGIN TimerId:= Find_Timer ('T_Timer'); IF NOT Id_Null (TimerId) THEN Delete_Timer (TimerId); END IF; END;
Установка характеристик таймера
SET_TIMER – устанавливает значения свойств таймера, таких как временной интервал и количество итераций.
Синтаксис:
SET_TIMER (TIMER_NAME IN varchar2 [TIMER_ID IN FORMS4C. TIMER], MILLISECONDS IN number, ITERATE IN number) RETURN FORMS4C.TIMER;
TIMER_NAME – определяет имя таймера;
TIMER_ID – идентификатор, полученный при создании командой CREATE_TIMER;
MILLISECONDS – определяет количество миллисекунд, по истечении которых таймер срабатывает, вызывая триггер WHEN-TIMER-EXPIRED;
ITERATE – определяет количество срабатываний таймера.
Это свойство принимает два параметра:
REPEAT – при указании этой константы триггер WHEN-TIMER-EXPIRED будет срабатывать каждый раз по истечении времени, указанного в ITERATE, до тех пор, пока таймер не будет удален или форма не будет закрыта;
NO_REPEAT – при указании этой константы триггер WHEN-TIMER-EXPIRED сработает всего один раз по истечении времени, указанного в ITERATE.
Последние комментарии