【问题标题】:Edit button WHEN-BUTTON-IS-PRESSED in Oracle forms builderOracle 表单生成器中的编辑按钮 WHEN-BUTTON-IS-PRESSED
【发布时间】:2014-09-06 22:16:33
【问题描述】:

我将创建一个编辑按钮,用于编辑 Oracle Forms Builder 中名为 MEMBERS 的表单的内容。我已经做了添加按钮,这是代码(此按钮位于 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 读取

我的问题是

  • 首先,我真的看不懂代码
  • 第二,我想知道在编辑表格内容时是否也需要循环,因为添加按钮被循环了
  • 第三,请帮我写出比这更好的代码

【问题讨论】:

    标签: plsql oracle10g oracleforms


    【解决方案1】:

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

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


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

    【讨论】:

    • 我按了 CTRL + K。但它什么也没做我输入不保存。怎么办?:((
    • 然后我收到了这个新错误 FRM-40400 没有要保存的更改
    • 应该是 Ctrl+T 来生成 fmx。我不知道您是如何设计表单的,但如果将其配置为以表为源的数据块,commit_form 会将输入的数据保存到数据块设置为源的表中。如果是 40400,则表单检测到没有任何变化,因此显示该消息
    • 但它仍然会保存我添加的信息,只要它说没有更改要保存
    • 那是因为您正在执行 commit_form 然后再次提交
    猜你喜欢
    • 2019-10-01
    • 2019-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-19
    • 2016-01-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多