Главная > Oracle Forms > Использование таймера


Использование таймера

Таймер

Таймер (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.

Похожие записи:

  1. Пока что нет комментариев.
  1. Пока что нет уведомлений.