【问题标题】:how display automated data on the display items in oracle forms如何在oracle表单的显示项上显示自动化数据
【发布时间】:2014-12-03 20:07:13
【问题描述】:

我在 ADD Button 中有一个代码,用于在 CONTROL 块上显示存储的数据(在表格中) 下面的代码工作正常,但我没有在块上得到 serial_no

COMMIT_FORM;

Declare 
  Cursor Cur_BILL_DETAILS 
   Is Select code , item_name , qty ,  amount
        From APPS.XXC_BILL_DETAILS 
       Where Bill_no = :bill_no; 
Begin 
  Go_Block('CONTROL');                 
  Open Cur_BILL_DETAILS; 
  Loop 
    Fetch Cur_BILL_DETAILS Into  :CONTROL.CODE , 
                                 :CONTROL.item_name , 
                                 :CONTROL.qty , 
                                 :CONTROL.amount; 
    Exit When Cur_BILL_DETAILS %Notfound; 
    Next_Record; 
  End Loop; 
  Close Cur_BILL_DETAILS; 
 First_Record; 
End;

我在 CONTROL 块(非数据库)上创建了预插入,如下所示,用于将 Serial_no 显示为

declare
  v_no number;
Begin
 select xxc_sno.nextval into v_no from dual;
 :CONTROL.SNO:=v_no;
end;

假设,

我正在插入代码 item_name,qty,amount 并提交记录,上面的 ADD Button 代码工作正常。

预插入代码未生成并显示编号为 1、2、3..

例如:

  Code    item   qty  Amount 
  ----    ----   ---  -----
   A       AA     1   10
   B       BB     1   20

然后点击添加按钮,保存插入的2条记录并进入下面(下一个,控制块),在控制块上显示存储的记录

     Sno     Code    item   qty  Amount 
     ----    ----    ----   ---  -----
      1         A      AA     1   10
      2         B      BB     1   20

但预插入触发器不会生成序列号为 1、2、3 等。(不生效)

你能帮帮我吗?

谢谢

【问题讨论】:

    标签: oracle10g oracleforms


    【解决方案1】:

    表单PRE-INSERT 触发器在将数据发布到基表块期间触发。控制块没有基表,因此PRE-INSERT 永远不会触发。我不确定(我的表单知识已生疏),但您可能想看看使用 WHEN-NEW-RECORD-INSTANCE 触发器。

    【讨论】:

    • 感谢 Tony 的回复,您的意思是 WHEN-NEW-RECORD-INSTANCE 控制 Sno?
    • 是的,我做到了 - 这应该在创建控制块记录时填充 SNO。
    猜你喜欢
    • 2018-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-29
    • 2015-12-10
    • 2019-09-14
    • 2021-03-10
    相关资源
    最近更新 更多