#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;