我在Oracle Forms上有一个名为“ UPLOAD”的按钮。当按下“上传”按钮时,将运行2个进程。
过程1:
-将数据从Excel文件上传到Oracle表单
-将数据从Oracle表单保存到数据库表
-在数据块上显示重复记录
-按钮标签将通过UPLOAD [1]更改
如果再次按下“上传”按钮,则进程2将运行
过程2:
-将数据从Excel文件上传到Oracle表单
-将数据从Oracle表单保存到数据库表
-按钮标签将通过UPLOAD [2]更改
现在我要再次按下“上传”按钮,然后自动增加数量。像UPLOAD [3]等。
“上传”按钮的代码:
IF ( :WE_GROUP.FILE IS NOT NULL ) AND :WE_GROUP.DISPLAY IS NOT NULL THEN
EXCEL_UPLOAD;
commit;
Set_Item_Property('Upload',label,'Upload'||' ['||2||']');
:WE_GROUP.FILE := NULL;
ELSIF ( :WE_GROUP.FILE IS NOT NULL ) AND :WE_GROUP.DISPLAY IS NULL THEN
EXCEL_UPLOAD;
commit;
Set_Item_Property('Upload',label,'Upload'||' ['||1||']');
:WE_GROUP.DISPLAY := 1;
:WE_GROUP.FILE := NULL;
go_block('we_group_hof_k');
CLEAR_BLOCK(NO_VALIDATE);
go_block('we_group_hof_k');
first_record;
for c in
(
SELECT cnicno, hofid
FROM hof
WHERE cnicno IN (SELECT cnic_no FROM we_group_hof_k)
)
loop
:we_group_hof_k.CNIC_NO := c.cnicno;
:we_group_hof_k.GROUP_HOF_ID := c.hofid;
next_record;
end loop;
ELSE
Message('No File selected.');
message(' ');
RAISE Form_Trigger_Failure;
END IF;
答案 0 :(得分:3)
只需将局部整数变量声明为
declare
v_label pls_integer
begin
并分配一个值,该值从“上传”按钮上看到的整数值开始递增
v_label := regexp_replace(Get_Item_Property('Upload',label),'(\D)')+1
然后替换
Set_Item_Property('Upload',label,'Upload'||' ['||2||']');
使用
Set_Item_Property('Upload',label,'Upload ['||v_label||']');