Последовательность форм Oracle при нажатой кнопке - PullRequest
1 голос
/ 16 апреля 2019

У меня есть кнопка «ЗАГРУЗИТЬ» в Oracle Forms, в которой, когда пользователь нажимает кнопку, то:

Если поле «Текстовый элемент» НЕ ПУСТО, то

- Запустить процедуру загрузки из файла "CSV" в формы Oracle

- сохранение данных из форм Oracle в таблицу в базе данных

- Запустить отчет в файле Excel из SQL QUERY

- изменить метку кнопки загрузки на «Загрузить 1 »

Эти шаги выполняются успешно. Код:

IF ( :WE_GROUP_HOF_K.FILE IS NOT NULL ) THEN
EXCEL_UPLOAD;
commit;
REPORT_EXCEL;
Set_Item_Property('Upload',label,'Upload [1]');

END IF;

enter image description here

Теперь я хочу эти шаги, когда пользователь снова Нажмите кнопку «ЗАГРУЗИТЬ»:

Если кнопка загрузки = 1 Нравится «Загрузить 1 », ТО

- Удалить из таблицы

- Загрузить снова (запустить процедуру загрузки)

- сохранить данные в таблицу базы данных

- изменить ярлык кнопки загрузки на «Загрузить [2]»

Я попробовал сам, когда кнопка «Загрузить» с надписью «Загрузить 1 », затем запустила 2-й шаг, но не решила. Пожалуйста, предоставьте решение

Спасибо

1 Ответ

1 голос
/ 16 апреля 2019

Вы можете использовать метод Get_Item_Property для извлечения numeric part для вашего if statement как

declare
  v_label varchar2(100);
begin
 if ( :we_group_hof_k.file is not null ) then
 begin   
  v_label := Get_Item_Property('Upload',label);
  if regexp_replace(v_label,'(\D)') = '1' then
    Delete from table ...
    EXCEL_UPLOAD;
    Save data into table database ...    
    Set_Item_Property('Upload',label,'Upload [2]');
  else
    EXCEL_UPLOAD;
    REPORT_EXCEL;
    Set_Item_Property('Upload',label,'Upload [1]');      
  end if;
    commit;
 end;   
 end if; 
end;
...