如何在 Button SET_ITEM_PROPERTY 上自动增加数字

How to automatic increment in number on Button SET_ITEM_PROPERTY

我在 Oracle Forms 上有一个名为 "UPLOAD" 的按钮。当按下 "UPLOAD" 按钮时,2 个进程将 运行.

进程 1:

-- 将数据从 Excel 文件上传到 Oracle 表单中

-- 将数据从 Oracle Forms 保存到数据库 Table

-- 显示数据块上的重复记录

-- 按钮标签将随 UPLOAD[1]

改变

如果再次按下 "UPLOAD" 按钮,则处理 2 将 运行

进程 2:

-- 将数据从 Excel 文件上传到 Oracle 表单中

-- 将数据从 Oracle Forms 保存到数据库 Table

-- 按钮标签将随上传[2]

改变

现在我想要当再次按下 "UPLOAD" 按钮时,数字会自动递增。比如UPLOAD[3]等等。

"UPLOAD" 按钮代码:

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;

只需声明一个局部整型变量为

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||']');