Последовательность форм Oracle при нажатии кнопки

#oracle #oracle11g #oracle10g #oracleforms #oracle-fusion-middleware

#Oracle #oracle11g #oracle10g #oracleforms #oracle-fusion-промежуточное программное обеспечение

Вопрос:

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

Если поле «Текстовый элемент» НЕ РАВНО нулю, то

— Запустить процедуру загрузки из файла «CSV» в Oracle Forms

— Сохранение данных из Oracle Forms в таблицу в базе данных

— Запустить отчет в файле Excel из SQL-ЗАПРОСА

— Измените метку кнопки загрузки на «Загрузить 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;
  

введите описание изображения здесь

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

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

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

— Повторная загрузка (запустить процедуру загрузки)

— Сохранение данных в табличной базе данных

— Измените метку кнопки загрузки на «Загрузить [2]»

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

Спасибо

Ответ №1:

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

 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;