如何在按钮SET_ITEM_PROPERTY

时间:2019-04-25 11:45:59

标签: oracle oracle11g oracle10g oracleforms oracle-fusion-middleware

我在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;

1 个答案:

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