在Oracle表单构建器中编辑按钮WHEN-BUTTON-IS-PRESSED

时间:2014-09-06 22:16:34

标签: plsql oracle10g oracleforms

我将创建一个编辑按钮,用于编辑Oracle Forms Builder中名为MEMBERS的表单的内容。我已经完成了ADD按钮,这是代码(此按钮位于MEMBERS_ADD表单):

注意:表的名称也是MEMBER,这些是成员表的列

-member_id  
-firstname  
-lastname    
-gender  
-address    
-contact   
-type   
-yearlevel  
-status   

begin
commit_form;
first_record;
LOOP
INSERT INTO MEMBERS
SELECT * FROM MEMBERS WHERE MEMBER_ID = MEMBER_ID;
EXIT WHEN :SYSTEM.LAST_RECORD='TRUE';
    NEXT_RECORD;
    END LOOP;
FIRST_RECORD;

COMMIT;
     MESSAGE('RECORD SAVED!');
     MESSAGE(' ',no_acknowledge);
end;

这是我用于编辑按钮的代码:

DECLARE
  pl PARAMLIST:=GET_PARAMETER_LIST('PL_EDIT_MEM');
BEGIN
  IF NOT ID_NULL(pl) THEN
    DESTROY_PARAMETER_LIST(pl);
  END IF;
  pl:=CREATE_PARAMETER_LIST('PL_EDIT_MEM');
  ADD_PARAMETER(pl, 'P_MODE', TEXT_PARAMETER, 'EDIT');
  ADD_PARAMETER(pl, 'P_MEMBER_ID', TEXT_PARAMETER, :MEMBERS.MEMBER_ID);
  CALL_FORM('MEMBER',NO_HIDE,DO_REPLACE,NO_QUERY_ONLY,pl);
END;

代码给我一个错误:FRM-40010:无法从MEMBER中读取

我的问题是

  • 首先,我真的不理解代码
  • 第二,我想知道在编辑表内容时是否还需要循环,因为添加按钮是循环的
  • 第三,请帮助我提供比此更好的代码

1 个答案:

答案 0 :(得分:0)

您的编辑按钮准备Parameter list,填充参数,然后执行call_form打开名为“member”的表单。

您收到FRM-40010错误,因为Forms服务器无法找到成员表单可执行文件(member.fmx)。我希望你已经编译了表单并创建了fmx文件。如果没有,请按 Ctrl + Shift + K 编译所有 Ctrl + T 生成fmx文件。


就第一段代码而言,循环没有意义,因为它只是进行自我连接(参见位:WHERE MEMBER_ID = MEMBER_ID - 我希望这是一个错字?)然后插入到同一个表中它选择来自